1
A
回答
4
我不建议安装ssh
,Docker
容器不是虚拟机,并且应该尊重微服务架构从它提供的许多优点中受益。
为了将信号从一个容器发送到另一个容器,您可以使用docker API。
首先,您需要在所需容器之间共享/var/run/docker.sock
。
docker run -d --name control -v /var/run/docker.sock:/var/run/docker.sock <Control Container>
发送信号到nginx的命名容器,你可以做到以下几点:
echo -e "POST /containers/nginx/kill?signal=HUP HTTP/1.0\r\n" | \
nc -U /var/run/docker.sock
另一个选项使用自定义图像,具有自定义脚本,用于检查nginx的配置文件,如果散列被改变发送重载信号。这样,每次更改配置时,nginx都会自动重新加载,或者您可以使用注释手动重新加载。这些脚本在kubernetes
用户中很常见。以下是一个例子:
nginx "[email protected]"
oldcksum=`cksum /etc/nginx/conf.d/default.conf`
inotifywait -e modify,move,create,delete -mr --timefmt '%d/%m/%y %H:%M' --format '%T' \
/etc/nginx/conf.d/ | while read date time; do
newcksum=`cksum /etc/nginx/conf.d/default.conf`
if [ "$newcksum" != "$oldcksum" ]; then
echo "At ${time} on ${date}, config file update detected."
oldcksum=$newcksum
nginx -s reload
fi
done
不要忘记安装inotifywait
包。
相关问题
- 1. 两个Docker容器之间的通信
- 2. 通信的两个主题之间
- 3. 同一台计算机上的两个程序之间的通信 - 如何?
- 4. 通信之间的两个
- 5. 通信之间的两个服务器
- 6. 流星在同一主机上的容器之间的DDP呼叫
- 7. 两个Docker容器之间的“java.net.NoRouteToHostException:没有路由到主机”
- 8. 如何正确共享两个容器之间的相同主机卷?
- 9. 如何在两个不同Docker容器之间共享本地主机?
- 10. 如何在同一台机器上的程序之间进行通信?
- 11. 在同一台机器上的ASP.NET应用程序之间进行通信
- 12. 两个不同设备上的两个应用程序之间的Android通信
- 13. 同一进程中两个DLL之间的通信
- 14. 在不同计算机上的进程之间进行通信
- 15. 同一网页上的两个Flex/Flash应用之间的通信
- 16. 套接字通信在同一台机器上工作,但不在不同机器之间
- 17. 不同容器中的应用程序之间的Docker通信
- 18. 两台机器之间的Java网络通信
- 19. 两个Cassandra节点之间的通信
- 20. 两个Arduinos之间的无线通信
- 21. 两个节点之间的通信
- 22. 两个片段之间的通信
- 23. 通信Python脚本之间的两个
- 24. 两个独立QWidget之间的通信
- 25. 两个iOS设备之间的通信
- 26. Docker容器中的RabbitMQ集群不同主机之间的容器
- 27. 两个attiny 85之间的主从通信IC
- 28. 两个ruby进程之间的通信可能/容易吗?
- 29. 两个不同的JFrames之间的通信?
- 30. 两个不同版本的python之间的通信
让外部入口点重新启动nginx并不危险? – Tali
取决于你的环境,有很多选项,你可以共享配置数据有很多其他选项 –
问题是我需要成为根用户重新启动nginx,如果可能,我preferer没有外部入口点。 – Tali