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. 兩個Docker容器之間的通信
- 3. 通信的兩個主題之間
- 4. 在兩臺機器上運行的進程之間的通信
- 5. 同一臺計算機上的兩個程序之間的通信 - 如何?
- 6. 通信之間的兩個
- 7. 通信之間的兩個服務器
- 8. 流星在同一主機上的容器之間的DDP呼叫
- 9. 兩個Docker容器之間的「java.net.NoRouteToHostException:沒有路由到主機」
- 10. 兩臺虛擬機之間的通信
- 11. 網絡數據在同一臺物理主機上的兩個LXC容器之間有什麼路徑?
- 12. 如何正確共享兩個容器之間的相同主機卷?
- 13. 使用tcp在同一臺機器上的進程間通信
- 14. 如何在兩個不同Docker容器之間共享本地主機?
- 15. 如何在同一臺機器上的程序之間進行通信?
- 16. 在同一臺機器上的ASP.NET應用程序之間進行通信
- 17. 同機JVM之間的最快通信
- 18. 在不同設備上的兩個不同HTML文件之間的通信(JS)
- 19. 兩個不同設備上的兩個應用程序之間的Android通信
- 20. 通信之間的兩個Web應用程序在同一臺服務器
- 21. 同一進程中兩個DLL之間的通信
- 22. 如何在安裝在兩個android手機上的同一個應用程序之間進行通信?
- 23. 在不同計算機上的進程之間進行通信
- 24. 使用java的兩臺機器之間的通信
- 25. 同一網頁上的兩個Flex/Flash應用之間的通信
- 26. 同一臺機器上的進程間通信
- 27. 套接字通信在同一臺機器上工作,但不在不同機器之間
- 28. 在同一臺計算機上的兩個應用程序之間的串行通信(RS232)(串行回送)
- 29. Ehcache不在同一臺機器上的兩個tomcat之間複製
- 30. 在不同領域的兩個應用的瀏覽器之間的通信
讓外部入口點重新啓動nginx並不危險? – Tali
取決於你的環境,有很多選項,你可以共享配置數據有很多其他選項 –
問題是我需要成爲根用戶重新啓動nginx,如果可能,我preferer沒有外部入口點。 – Tali