docker 中 修改了 Nginx 配置不起作用

描述

我使用了数据卷来启动容器,docker run --name nginx-container -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf -p 80:80 -d nginx

我修改了本地的配置文件,通过docker exec -it nginx-container nginx -s reload 发送重启命令,发现不管用,仍然使用原来的配置文件,必须要 docker stop nginx-container 然后再 docker start nginx-container

疑问

是我的用法不对吗?还是不能这么搞,使用数据卷应该修改本地的就会把容器里面的配置修改了,然而我连接到容器里面查看,还是原来的配置,说明本地的修改没有生效,是不是遗漏了哪一环节?

我看到官方在映射数据卷的时候,在后面加ro,这是只读的意思吧,我什么都不加应该有修改权限吧?

-v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro

另外我映射本地一个index.html到容器中,访问首页,修改本地index.html,是生效的,只是映射的配置文件不行。

阅读 20.3k
2 个回答

docker exec -it nginx-container service nginx reload

-v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro

因为你挂载的是文件,而不是目录。宿主机修改文件,容器里的文件不一定能同步修改过去,目录怎不会。参考:https://cloud.tencent.com/dev...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题