More  

收藏本站

電腦請使用 Ctrl + D 加入最愛
手機請使用 收藏
關閉

小編的世界 優質文選 主機

還在服務器上直接安裝Nginx麼,使用Docker安裝不香麼


字體大小:
2020年9月10日 -
:        
 

今天我們就以docker安裝以及使用docker安裝nginx為例進行闡述。

安裝與啟動docker

使用yum命令查看可安裝的docker版本:yum list | grep docker

安裝命令:yum install docker-ce.x86_64

啟動:service docker start

停止:service docker stop

docker常用操作命令

搜索docker鏡像程序,例如搜索 nginx 鏡像

命令:docker search nginx

拉取鏡像,例如拉取上面NAME為nginx的鏡像

docker pull nginx

運行nginx容器

docker run --name myNginx -d -p 80:80

-v /usr/docker/myNginx/html:/usr/share/nginx/html

-v /usr/docker/myNginx/conf.d:/etc/nginx/conf.d

-v /usr/docker/myNginx/logs:/var/log/nginx

Nginx

命令說明請看下面nginx具體的安裝步驟

查看正在運行的鏡像

命令:docker ps

查看歷史運行的鏡像

命令:docker ps -a

進入容器內部,例如進入name為nginx81的容器內部

命令:docker exec -it nginx81 bash

命令說明:nginx81 指的是創建容器的名稱,用 docker ps 可以看到正在運行的容器名稱

進入容器也可以用容器的ID進入docker exec -it 0117fdb52af6 bash

其中0117fdb52af6 為容器的id

容器時區與系統時區同步

容器內部時區默認是UTC而系統時區是CST,時間相差8個小時,為了同步時區從而達到同步時間運行容器的時候 將系統時區文件映射到容器中。

運行時加上參數 -v /etc/localtime:/etc/localtime

例如運行nginx容器:

命令:docker run --name myNginx -d -p 80:80 -v /etc/localtime:/etc/localtime nginx

如果是自己構建的docker容器,構建時注意設置時區問題

docker容器與系統之間文件拷貝

拷貝容器文件到系統:例如拷貝容器id為b62d9360c8bb的/etc/nginx/nginx.conf 到 系統/usr目錄

命令: docker cp b62d9360c8bb:/etc/nginx/nginx.conf /usr

若是從容器內拷貝文件出來只需兩個路徑對調一下順序即可

docker查看鏡像以及鏡像、容器的刪除

查看已下載到系統的鏡像文件

命令:docker images

其中 TAG 為鏡像的版本號,IMAGE ID為鏡像ID

刪除鏡像

命令:docker rmi 313343fef30b

其中313343fef30b為鏡像的ID,需要注意的是刪除鏡像前需要確保該鏡像不在容器中運行,且通過該鏡像所構建的容器已經刪除掉,否則刪除報錯

刪除容器

命令:docker rm 7246d006ec9b

其中 7246d006ec9b 為容器ID,刪除前容器必須是停止狀態,否則刪除報錯

docker的卸載

查看已安裝的 docker版本

yum list installed | grep docker

卸載docker

yum -y remove docker-ce.x86_64

yum -y remove docker-client.x86_64

yum -y remove docker-common.x86_64

docker 安裝nginx

Nginx 是一個高性能的 HTTP 和反向代理 web 服務器以及做負載均衡、web緩存等

搜索nginx鏡像

命令:docker search nginx

拉取nginx鏡像

例如拉取上面NAME為nginx的鏡像

命令:docker pull nginx

查看所下載的nginx鏡像

命令:docker images

運行nginx容器

命令:docker run --name myNginx -d -p 443:443

-v /usr/docker/myNginx/html:/usr/share/nginx/html

-v /usr/docker/myNginx/conf.d:/etc/nginx/conf.d

-v /usr/docker/myNginx/logs:/var/log/nginx

nginx:latest

命令說明:

docker run :運行容器

--name:為容器取得別名

myNginx:容器的別名,自定義

-d:指定容器的運行方式為後台運行

-p:指定將系統的443端口映射到nginx容器中的443端口

:linux命令換行符

-v:映射容器中的目錄到系統中的目錄

-v /usr/docker/myNginx/html:/usr/share/nginx/html :映射nginx靜態頁面目錄系統目錄便於部署靜態頁面項目

-v /usr/docker/myNginx/conf.d:/etc/nginx/conf.d 映射nginx配置文件目錄到系統目錄便於配置nginx

-v /usr/docker/myNginx/logs:/var/log/nginx設置nginx日志文件到系統目錄便於查看nginx日志

nginx:latest :nginx為鏡像名稱,latest為版本號

nginx代理服務配置

例如需要把域名xxx.com所有以/order/為前綴的請求代理轉發到http://168.168.28.35:8080/ORDERSERVICE服務進行處理

在nginx的配置目錄下增加配置文件eur.conf名字自定義,文件後綴必須為conf,配置文件的目錄如5.3所運行的容器,已把nginx容器的配置文件目錄映射到了系統的/usr/docker/myNginx/conf.d目錄

編寫代理配置文件

配置說明:

isten 443:表示監聽443端口,此端口需與容器映射端口對應,例如運行nginx容器時

將系統的443映射到容器的443端口則此處配置應監聽443,若系統程序端口是8081,此時將系統8081端口映射到容器的80端口,那麼配置文件需要監聽的是80端口。

server_name:服務的域名

location / :nginx默認訪問請求,root 指nginx訪問的靜態文件目錄,index 指定默認的首頁

location /order/ :處理jiahetech.com/order/開頭的請求

proxy_pass:處理請求的服務地址

nginx配置https

把https相關的證書文件和證書key放到配置目錄下面,再將上面配置修改如下

配置說明:

listen 443 ssl:監聽443端口,開啟ssl

ssl_certificate :ssl證書的路徑(容器內的路徑,不是映射到宿主機的路徑)

ssl_certificate_key :證書key文件路徑(容器內的路徑,不是映射到宿主機的路徑)

nginx反向代理請求頭問題

若業務需要獲取客戶端的請求的真實IP,手動設置相關請求頭信息,默認不設置話,業務服務端獲取的IP信息為nginx的IP地址

nginx常用操作命令

nginx -s stop 快速關閉Nginx,可能不保存相關信息,並迅速終止web服務。

nginx -s quit 平穩關閉Nginx,保存相關信息,有安排的結束web服務。

nginx -s reload 因改變了Nginx相關配置,需要重新加載配置而重載。

nginx -s reopen 重新打開日志文件。

------------------------------------------------END---------------------------------

你的一個贊一個關注是我創作的動力,是我持續輸出的能量源泉,老鐵關注一波吧