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。