我想在我的nginx中添加/删除在docker容器中运行的服务器
我在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生效?
提前谢谢你!
答案 0 :(得分:37)
docker restart
;您可以进入容器内部并运行nginx -s reload
例如,在docker env中,如果您有名为nginx
的容器
docker exec <nginx_container_id> nginx -s reload
答案 1 :(得分:13)
重新加载NGINX配置运行命令
docker kill -s HUP container_name
https://blog.docker.com/2015/04/tips-for-deploying-nginx-official-image-with-docker/
答案 2 :(得分:3)
如果要重新启动NGINX进程,请运行以下命令重新启动容器:
docker restart <container name>
https://blog.docker.com/2015/04/tips-for-deploying-nginx-official-image-with-docker/
答案 3 :(得分:1)
如果要从容器中执行此操作,则需要服务/配置发现。像coreOS/etcd和Apache Zookeeper这样的工具是为了促进这一过程。公平警告:对于简单的应用程序,这些可能有点难以管理。
还有docker-gen,这有点容易。对于您正在描述的场景,甚至有specific pre-made script。
答案 4 :(得分:0)
所有答案都是正确的,但只是为了澄清有许多不同的方法可以实现相同的结果。 例如
docker kill -s SIGHUP container_name
docker run nginx_image nginx -s reload
docker exec -t container_name nginx -s reload
Docker-Compose 的工作原理几乎相同:
docker-compose kill -s SIGHUP container_name