拉取镜像
docker pull nginx
创建需要挂载的相应的挂载目录
mkdir -p /home/nginx/html /home/nginx/log /home/nginx/conf
进入到nginx文件夹
cd /home/docker/nginx/
复制配置文件
docker run --name nginx -p 81:80 -d nginx
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/nginx/
删除临时容器
docker rm -f nginx
启动nginx
获取docker 镜像中nginx的文件路径(这里是我提前找好的,可以直接套用。如果想要自己尝试去寻找,可以先将镜像启动后,通过docker exec -it nginx bash命令进入到容器内部自己寻找)
docker run \
-p 80:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx
如果启动报错
2021/01/19 01:41:19 [error] 23#23: *1 directory index of "/etc/nginx/html/" is forbidden, client: 106.47.97.31, server: localhost, request: "GET / HTTP/1.1", host: "xx.xx.xx.xxx"
这是因为确实index.html
在/root/docker/nginx/html 下创建一个index.html就ok了 随便写点内容,再次访问就可访问到你刚刚创建的index.html页面了。