天天看點

docker容器随主控端啟動而開機自啟動

1.我們的需求
讓Docker容器跟随主控端啟動而啟動
2.Restart policy機制

Docker提供了Restart policy機制,可以在容器退出或者Docker重新開機時控制容器能夠自啟動。這種Restart policy可以保證相關容器按照正确順序啟動。雖然也可以通過程序監控的方式(如systemd)來完成這種動作,但Docker還是建議盡量避免使用程序監控的方式來"自啟動" 容器。

Docker的 Restart policy與dockerd指令的–live-restore啟動标志還有差別:–live-restore标志可以在Docker更新的時候保證容器繼續運作,但是網絡以及使用者終端輸入會被中斷。

那到底什麼是restart policy呢?我們來看看實際的情況吧。

3.Docker run的restart參數

在使用docker run啟動容器時,使用–restart參數來設定:

docker run ‐d ‐p 80:80 --restart=always nginx
           

no - 容器不自動重新開機

on-failure - 容器退出狀态不為0時自動重新開機

on-failure:[n] - 容器退出狀态不為0時自動重新開機,最大嘗試n次

always - 始終嘗試自動重新開機

如果建立時未指定 --restart=always ,可通過update 指令設定

docker update --restart=always 容器名稱
           

在使用on - failure參數時,指定Docker将嘗試重新啟動容器的最大次數。

預設情況下,Docker将嘗試永遠重新啟動容器。

嘗試重新開機redis容器10次

docker run --restart=on-failure:10 nginx