1 、下载镜像

docker pull nginx

先简单nginx运行起来,方便后面我们拷贝容器内部的nginx配置文件。

docker run -d -p 80:80 nginx

2、 本地创建挂载目录

mkdir -p /opt/nginx/{conf,conf.d,html,logs}

在这里插入图片描述

删除命令:
rm -rf /opt/nginx/{conf.d,html,log}

3、拷贝容器内的nginx配置文件到宿主机做挂载

拷贝容器内的nginx配置文件到宿主机做挂载,我们以后编辑nginx配置文件都在宿主机修改,不用去docker中去修改。
首先说明之前用普通方式装的nginx只需在一个配置文件nginx.conf 中修改,现在在docker容器内部nginx有两个配置文件,nginx.conf 和default.conf ,所以要把这两文件都取出来才行。

查看nginx容器的ID
docker ps在这里插入图片描述

copy文件:
docker cp 4ff3d4e08230:/etc/nginx/nginx.conf /opt/nginx/conf/

docker cp 4ff3d4e08230:/etc/nginx/conf.d/default.conf /opt/nginx/conf.d/

然后去查看我们的文件有没有拷贝出来

4、修改配置文件 default.conf

在这里插入图片描述

5、运行镜像

docker run \
--name nginx8088 \
-d -p 8088:80 \
-v /opt/nginx/log:/var/log/nginx  \
-v /opt/nginx/html:/usr/share/nginx/html \
-v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf  \
-v /opt/nginx/conf.d:/etc/nginx/conf.d  \
nginx

注意:
-v 是将:后面的容器内的文件挂载到宿主机上,也就是说用宿主机的配置来代替容器内的配置,更改宿主机的配置相当于是改容器内的配置,这样的话加入容器被删除了,也不会丢失我们的配置文件,
-v /opt/nginx/html:/usr/share/nginx/html 是将我们在default.conf中配置的静态资源配置,挂载到宿主机外,我们修改的配置文件指定的静态资源路径是指到容器内部的,到时候会去容器的目录下找,所以我们要把容器内部的静态资源挂载出来,让他去宿主机去找这样才能访问到!!!切记!!!!!!

我们提前在/opt/nginx/html存放我们的图片资源。在浏览器访问
在这里插入图片描述
我启动时映射的端口为8088,所以在浏览器访问http://ip:8088/1.jpg
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐