更新上游服务器时重新启动nginx容器

Hok*_*sei 19 nginx docker

我想在我的nginx中添加/删除在docker容器中运行的服务器

我在Dockerfile中使用ADD命令将我的nginx.conf添加到/ etc/nginx目录.

# Copy a configuration file from the current directory
ADD nginx.conf /etc/nginx/
Run Code Online (Sandbox Code Playgroud)

然后在我运行的nginx容器中有这样的conf

# 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;
}
Run Code Online (Sandbox Code Playgroud)

如何重新启动我的nginx以使编辑后的nginx.conf生效?

先感谢您!

Dea*_*ada 48

初始化Docker Swarm时,建议不要重新启动容器,因为它可能会删除nginx服务.所以如果你需要一个替代方案docker restart; 你可以进入容器内部然后运行nginx -s reload

例如,在docker env中,如果您有名为的容器 nginx

docker exec <nginx_container_id> nginx -s reload
Run Code Online (Sandbox Code Playgroud)

  • 这似乎是更好,更少破坏性的答案. (8认同)
  • 有史以来最简单的解决方案。大多数人,像我一样,有时可能会忘记 docker 中的某些任务是微不足道的,就像它们是在主机中完成的一样。 (2认同)

小智 14

重新加载NGINX配置运行命令

docker kill -s HUP container_name

https://blog.docker.com/2015/04/tips-for-deploying-nginx-official-image-with-docker/


Thi*_*Six 8

Docker容器中重新加载 Nginx 的简单方法

docker exec -it {container_name} nginx -s reload
Run Code Online (Sandbox Code Playgroud)

使用PowerShell 在此输入图像描述


小智 5

如果要重新启动 NGINX 进程,请通过运行以下命令重新启动容器:

docker restart <container name>
Run Code Online (Sandbox Code Playgroud)

https://blog.docker.com/2015/04/tips-for-deploying-nginx-official-image-with-docker/