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