docker容器開機啟動

2021-10-02 01:46:02 字數 1254 閱讀 4941

容器自啟動

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

docker的 restart policy與dockerd命令的--live-restore啟動標誌還有區別:--live-restore標誌可以在docker公升級的時候保證容器繼續執行,但是網路以及使用者終端輸入會被中斷。

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

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

# docker run -m 512m --memory-swap 1g -it -p 58080:8080 --restart=always   

--name bvrfis --volumes-from logdata mytomcat:4.0 /root/run.sh  

--restart具體引數值詳細資訊:

no -  容器退出時,不重啟容器;

on-failure - 只有在非0狀態退出時才從新啟動容器;

always - 無論退出狀態是如何,都重啟容器;

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

docker update --restart=always 容器名稱  

還可以在使用on - failure策略時,指定docker將嘗試重新啟動容器的最大次數。預設情況下,docker將嘗試永遠重新啟動容器。

# sudo docker run --restart=on-failure:10 redis  

restart policy細節

使用restart policies時需要注意如下細節:

(1) 容器只有在成功啟動後restart policy才能生效。這裡的"成功啟動"是指容器處於up至少10秒且已經處於docker監管。這是避免沒有成功啟動的容器陷入restart的死迴圈。

(2)如果手動(manually)的stop(與前面的explicitly stopped有何區別)乙個容器,容器設定的restart policy將會被忽略,除非docker daemon重啟或者容器手動重啟。這是避免了另外一種死迴圈。

(3)restart policies只能用於容器,對於swarm services其restart policies有不通過的配置。

Docker容器開機自動啟動

部署專案伺服器時,為了應對停電等情況影響正常web專案的訪問,會把docker容器設定為開機自動啟動。在使用docker run啟動容器時,使用 restart引數來設定 如果建立時未指定 restart always 可通過update 命令設定 docker update restart alw...

Docker容器開機自動啟動

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

Docker容器開機自動啟動

部署專案伺服器時,為了應對停電等情況影響正常web專案的訪問,會把docker容器設定為開機自動啟動。在使用docker run啟動容器時,使用 restart引數來設定 docker run m 512m memory swap 1g it p 58080 8080 restart always ...