翼度科技»论坛 云主机 服务器技术 查看内容

docker运行nginx绑定配置文件失败原因以及问题解决

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
直接执行启动命令会失败

pull镜像:
  1. docker pull nginx
复制代码
然后执行启动命令:
  1. docker run -d -p 80:80 -p 443:443 --name nginx \
  2. -v /mydata/nginx/html:/usr/share/nginx/html \
  3. -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
  4. -v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d \
  5. -v /mydata/nginx/logs:/var/log/nginx \
  6. -v /mydata/nginx/cache:/var/cache/nginx \
  7. --restart=always nginx
复制代码
如果
  1. /mydata/nginx/conf/nginx.conf
复制代码
文件不存在,这里会出现docker报错,因为docker不允许绑定不存在的文件。
而直接新建一个空的
  1. /mydata/nginx/conf/nginx.conf
复制代码
虽然docker不会报错,但是nginx却无法在容器中正常启动,通过
  1. docker ps -a
复制代码
命令查看,nginx会处于
  1. exit
复制代码
或者一直
  1. restart
复制代码
状态,因为nginx的运行依赖于
  1. nginx.conf
复制代码
这个配置文件中的相关配置。

解决思路及办法

先运行一个容器,不使用-v绑定,然后将容器中的相关文件直接copy到指定位置,之后就可以删除容器,直接运行之前的启动命令了。
具体操作如下:
首先创建好相关文件夹:
  1. mkdir -p \
  2. /mydata/nginx/html \
  3. /mydata/nginx/conf \
  4. /mydata/nginx/logs \
  5. /mydata/nginx/cache
复制代码
跑起来一个nginx容器:
  1. docker run -d --name nginx nginx
复制代码
复制配置文件和文件夹到宿主机指定目录:
  1. docker cp nginx:/etc/nginx/nginx.conf /mydata/nginx/conf/
  2. docker cp nginx:/etc/nginx/conf.d /mydata/nginx/conf.d
复制代码
删除原容器:
  1. docker rm -f nginx
复制代码
运行启动命令,-v绑定相关卷:
  1. docker run -d -p 80:80 -p 443:443 --name nginx \
  2. -v /mydata/nginx/html:/usr/share/nginx/html \
  3. -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
  4. -v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d \
  5. -v /mydata/nginx/logs:/var/log/nginx \
  6. -v /mydata/nginx/cache:/var/cache/nginx \
  7. --restart=always nginx
复制代码
移动copy的
  1. conf.d
复制代码
目录中的文件到正确的位置:
  1. mv /mydata/nginx/conf.d/* /mydata/nginx/conf/conf.d/
  2. rm -rf /mydata/nginx/conf.d
复制代码
这样nginx容器就可以正常运行,并且我们通过上面的操作将
  1. nginx.conf
复制代码
文件和
  1. conf.d
复制代码
目录都映射到了宿主主机上,以后需要修改
  1. nginx.conf
复制代码
文件或者为
  1. conf.d
复制代码
添加
  1. .conf
复制代码
文件都只需要在宿主机上的对应位置操作即可。

总结

到此这篇关于docker运行nginx绑定配置文件失败原因以及问题解决的文章就介绍到这了,更多相关docker运行nginx绑定配置文件失败内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/article/276069.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具