docker运行nginx绑定配置文件失败如何解决
发布时间 - 2023-05-17 00:00:00 点击率:次直接执行启动命令会失败
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
# nginx
# copy
# 绑定
# 不存在
# 报错
# 配置文件
# 就可以
# 只需
# 要在
# 镜像
# 机上
# 正常运行
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
php 三元运算符实例详细介绍
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
Laravel观察者模式如何使用_Laravel Model Observer配置
如何快速搭建高效简练网站?
如何构建满足综合性能需求的优质建站方案?
黑客如何通过漏洞一步步攻陷网站服务器?
如何快速搭建支持数据库操作的智能建站平台?
再谈Python中的字符串与字符编码(推荐)
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
网站制作大概多少钱一个,做一个平台网站大概多少钱?
详解阿里云nginx服务器多站点的配置
JavaScript常见的五种数组去重的方式
如何在Windows虚拟主机上快速搭建网站?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
QQ浏览器网页版登录入口 个人中心在线进入
网易LOFTER官网链接 老福特网页版登录地址
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
如何在局域网内绑定自建网站域名?
Thinkphp 中 distinct 的用法解析
iOS正则表达式验证手机号、邮箱、身份证号等
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
Swift开发中switch语句值绑定模式
bing浏览器学术搜索入口_bing学术文献检索地址
javascript读取文本节点方法小结
js实现点击每个li节点,都弹出其文本值及修改
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
Laravel如何使用Sanctum进行API认证?(SPA实战)
LinuxCD持续部署教程_自动发布与回滚机制
教你用AI润色文章,让你的文字表达更专业
PHP 500报错的快速解决方法
深圳网站制作的公司有哪些,dido官方网站?
图册素材网站设计制作软件,图册的导出方式有几种?
Laravel如何处理和验证JSON类型的数据库字段
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
Laravel如何使用模型观察者?(Observer代码示例)
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
Laravel如何配置任务调度?(Cron Job示例)
Laravel如何实现用户密码重置功能?(完整流程代码)
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
linux写shell需要注意的问题(必看)
javascript中的try catch异常捕获机制用法分析

