【发布时间】:2021-10-27 18:17:39
【问题描述】:
我想在 docker 容器内运行的 nginx 中添加/删除服务器
我在 Dockerfile 中使用 ADD 命令将我的 nginx.conf 添加到 /etc/nginx 目录。
# Copy a configuration file from the current directory
ADD nginx.conf /etc/nginx/
然后在我正在运行的 nginx 容器中具有这样的配置
# List of application servers
upstream app_servers {
server 172.17.0.91:9000;
server 172.17.0.92:9000;
server 172.17.0.93:9000;
}
如何重启我的 nginx 才能使编辑的 nginx.conf 生效?
提前致谢!
【问题讨论】:
-
由于您正在修改 Dockerfile,因此您需要重新构建 docker 映像,从而从该映像运行一个新容器。无法重新启动已过时容器中的 nginx 进程以读取它没有的新配置文件。
-
我想我真的不太了解docker。我想,外部脚本,更新后,我只需执行 docker restart 或其他操作即可生效。再次重建图像有点不方便。因为我有其他脚本可以修改 nginx 配置。我想,我会停止使用 nginx docker。但是,嘿,我在其他应用程序中大量使用 docker。谢谢你的回答。
-
结合下面 Dean Armada 的精彩回答,我建议您考虑使用 conf.d 安装一个卷,以便从 docker 主机、共享驱动器或什至只是一个 s3 持久保存它桶。然后它很容易编辑,并且软重新加载让它开始。此外,如果不确定,请在重新加载之前对其进行测试以避免停机!