【微服務】docker安裝nginx

yingxian_Fei發表於2018-11-15

1、搜尋nginx映象

docker search nginx

2、下載nginx映象

docker pull nginx

3、對映nginx工作目錄

為了方便修改nginx中的配置、網頁。我們再宿主機上建立nginx相關的目錄,命令如下:

sudo mkdir -p /opt/nginx /etc/nginx /var/log/nginx

4、執行容器,拷貝配置

首先使用預設引數執行容器,然後將容器內部的預設配置拷貝到第三步準備的工作目錄中。

預設引數執行容器,命令如下:

docker run -p 443:443 -p 80:80 -p 8088:8088 --name mynginx -d nginx  

之後進入該容器內部檢視預設的配置檔案:

docker exec -it 32e505a54570 bash

其中32e505a54570表示的是docker ps之後檢視到的容器id。檢視容器內預設的配置存放地址,本次預設的引數存放地址如下:

/usr/share/nginx/html/

/etc/nginx

/var/log/nginx

其中我們需要將etc下的nginx配置複製到宿主機,方便後面直接修改宿主機上的配置,將html目錄也對映到宿主機方便更新靜態資源。

可以使用如下命令複製容器內的目錄到宿主機的指定目錄:

sudo docker cp mynginx:/etc/nginx /etc

表示將名稱為mynginx的容器內的/etc/nginx 目錄拷貝到etc目錄下。用類似的方法可以拷貝其他的配置到宿主機。

5、使用宿主機的配置執行nginx

從預設的容器中拷貝出配置到宿主機後,需要重新執行新的容器將宿主機的目錄對映到容器中。

(1)、停止nginx服務

sudo docker ps
sudo docker kill d504e14eb5b8

先通過ps檢視到在執行的nginx容器的id,然後通過kill命令停止在執行的容器。

(2)、刪除舊容器

通過如下命令刪除舊的容器:

sudo docker ps -a
sudo docker rm d504e14eb5b8

先通過ps檢視已經建立的容器id,然後通過docker rm id刪除已存在的容器。

(3)、帶引數執行nginx

可以通過如下帶引數的命令重新執行nginx服務:

docker run -p 443:443 -p 80:80 -p 8088:8088 --name mynginx -v /opt/nginx/html:/usr/share/nginx/html/ -v /etc/nginx:/etc/nginx -v /opt/nginx/logs:/var/log/nginx  -d nginx  

6、重新載入nginx配置

 在修改了nginx配置後我們常常需要重新載入nginx引數。可以使用如下命令使nginx reload。

docker exec -i 32e505a54570 nginx -s reload

其中32e505a54570表示docker ps看到的nginx在執行的服務id。

相關文章