docker运行nginx绑定配置文件失败原因以及问题解决
目录
- 直接执行启动命令会失败
- 解决思路及办法
- 总结
直接执行启动命令会失败
pull镜像:
docker pull nginx
然后执行启动命令:
docker run -d -p 80:80 -p 443:443 --name nginx \ -v /mydata/nginx/html:/usr/share/nginx/html \ -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /mydata/nginx/logs:/var/log/nginx \ -v /mydata/nginx/cache:/var/cache/nginx \ --restart=always nginx
如果/mydata/nginx/conf/nginx.conf文件不存在,这里会出现docker报错,因为docker不允许绑定不存在的文件。
而直接新建一个空的/mydata/nginx/conf/nginx.conf虽然docker不会报错,但是nginx却无法在容器中正常启动,通过docker ps -a命令查看,nginx会处于exit或者一直restart状态,因为nginx的运行依赖于nginx.conf这个配置文件中的相关配置。
解决思路及办法
先运行一个容器,不使用-v绑定,然后将容器中的相关文件直接copy到指定位置,之后就可以删除容器,直接运行之前的启动命令了。
具体操作如下:
首先创建好相关文件夹:
mkdir -p \ /mydata/nginx/html \ /mydata/nginx/conf \ /mydata/nginx/logs \ /mydata/nginx/cache
跑起来一个nginx容器:
docker run -d --name nginx nginx
复制配置文件和文件夹到宿主机指定目录:
docker cp nginx:/etc/nginx/nginx.conf /mydata/nginx/conf/ docker cp nginx:/etc/nginx/conf.d /mydata/nginx/conf.d
删除原容器:
docker rm -f nginx
运行启动命令,-v绑定相关卷:
docker run -d -p 80:80 -p 443:443 --name nginx \ -v /mydata/nginx/html:/usr/share/nginx/html \ -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /mydata/nginx/logs:/var/log/nginx \ -v /mydata/nginx/cache:/var/cache/nginx \ --restart=always nginx
移动copy的conf.d目录中的文件到正确的位置:
mv /mydata/nginx/conf.d/* /mydata/nginx/conf/conf.d/ rm -rf /mydata/nginx/conf.d
这样nginx容器就可以正常运行,并且我们通过上面的操作将nginx.conf文件和conf.d目录都映射到了宿主主机上,以后需要修改nginx.conf文件或者为conf.d添加.conf文件都只需要在宿主机上的对应位置操作即可。
总结
上一篇:Docker快速部署主流脚本语言JavaScript的全过程
栏 目:其它服务器
下一篇:windows下Docker部署Flask的详细教程
本文标题:docker运行nginx绑定配置文件失败原因以及问题解决
本文地址:https://zz.feitang.co/server/30848.html
您可能感兴趣的文章
- 12-20Kubernetes中使用临时容器进行故障排查的方法
- 12-20Nginx设置HTTPS的方法步骤
- 12-20二进制方式安装 Kubernetes1.18.3版本实现脚本
- 12-20Nginx工作模式及代理配置的使用细节
- 12-20ZooKeeper分布式协调服务设计核心概念及安装配置
- 12-20Kubernetes部署可视化地图的十个步骤
- 12-20关于docker清理Overlay2占用磁盘空间的问题(亲测有效)
- 12-20Docker compose配置文件写法及命令使用示例
- 12-20openwrt安装docker并启动的操作方法
- 12-20云原生Kubernetes初始化容器Init使用教程


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07新版Eclipse集成Tomcat时找不到server选项的解决方法
- 12-06IIS7 应用程序池自动回收关闭的解决方案
- 12-05Windows Server 2019安装VMware
- 12-05Windows服务器默认IE浏览器无法下载文件的解决方法
- 12-05Docker安装Jenkins全过程
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法





