前言:当直接run运行nginx容器时,如果命令带有-v 映射出配置文件目录,则会报错,提示无法初始化,原因是没有配置文件,docker会同步主机文件到容器内,而主机文件又是空白的,所以无法启动。
正文:
1、创建一个空的nginx容器
docker run -d -it --name nginx nginx:latest
2、复制出nginx容器中的配置文件
创建文件夹:mkdir -p /home/apps/nginx
这里我把nginx的页面,日志,配置文件都复制出来。复制到/home/apps下
docker cp nginx:/usr/share/nginx/html/ /home/apps/nginx/html/
docker cp nginx:/var/log/nginx/ /home/apps/nginx/logs
docker cp nginx:/etc/nginx/conf.d /home/apps/nginx/conf.d/
docker cp nginx:/etc/nginx/nginx.conf /home/apps/nginx/nginx.conf
3、删除这个空的nginx容器
docker rm -f nginx
4、运行nginx镜像
docker run -d --restart=always -p 80:80 --name nginx -e TZ=Asia/Shanghai \
-v /etc/localtime:/etc/localtime:ro \
-v /home/apps/nginx/html:/usr/share/nginx/html \
-v /home/apps/nginx/logs:/var/log/nginx \
-v /home/apps/nginx/conf.d/:/etc/nginx/conf.d \
-v /home/apps/nginx/nginx.conf:/etc/nginx/nginx.conf nginx:latest
5、访问nginx首页,创建成功
http://主机IP地址