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

 更新时间:2023年02月22日 09:17:27   作者:渝涅  
最近工作中在使用docker运行nginx的时候遇到了些问题,下面分享给大家,这篇文章主要给大家介绍了关于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运行nginx绑定配置文件失败原因以及问题解决的文章就介绍到这了,更多相关docker运行nginx绑定配置文件失败内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker获取镜像报错docker: Error response from daemon

    Docker获取镜像报错docker: Error response from daemon

    这篇文章主要介绍了Docker获取镜像报错docker: Error response from daemon, 出现了镜像获取报错的问题,找到了解决的方法记一下,需要的朋友可以参考下
    2018-08-08
  • docker报错Container is not running问题及解决

    docker报错Container is not running问题及解决

    这篇文章主要介绍了docker报错Container is not running问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 基于windows10安装docker及遇到的问题

    基于windows10安装docker及遇到的问题

    这篇文章主要介绍了基于windows10安装docker及遇到的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • docker容器增加端口映射全过程(修改配置文件方式)

    docker容器增加端口映射全过程(修改配置文件方式)

    文章详细描述了如何通过修改Docker容器的配置文件来增加端口映射,以解决已经运行的容器需要增加端口映射的问题,以MySQL容器为例进行了具体操作步骤的说明
    2024-11-11
  • 开放Docker端口的实现示例

    开放Docker端口的实现示例

    本篇文章主要介绍了开放Docker端口的实现示例, 需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • 使用docker搭建一套开发环境全家桶的详细教程

    使用docker搭建一套开发环境全家桶的详细教程

    这篇文章主要介绍了使用docker搭建一套开发环境全家桶,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • docker安装使用xdebug的过程

    docker安装使用xdebug的过程

    这篇文章主要介绍了docker安装使用xdebug的过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • Docker常用命令详解

    Docker常用命令详解

    这篇文章主要介绍了Docker常用命令详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 解决docker run中使用 ./ 相对路径挂载文件或目录失败的问题

    解决docker run中使用 ./ 相对路径挂载文件或目录失败的问题

    这篇文章主要介绍了解决docker run中使用‘./‘相对路径挂载文件或目录失败的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 详解docker pull 下来的镜像都存到了哪里

    详解docker pull 下来的镜像都存到了哪里

    这篇文章主要介绍了详解docker pull 下来的镜像都存到了哪里,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11

最新评论