-
確認 Docker 服務狀態:
首先,你需要確保 Docker 服務已經在虛擬機上安裝并正確配置。你可以使用如下命令來檢查 Docker 服務的狀態:
?systemctl status docker.service
如果服務沒有運行,你可以使用以下命令啟動它:
?systemctl start docker.service
-
設置 Docker 開機自啟動:
使用
systemctl enable
命令來設置 Docker 服務在虛擬機開機時自動啟動:?sudo systemctl enable docker.service
二、設置 Docker 容器開機自動啟動
-
創建或獲取容器 ID/名稱:
確保你已經有一個或多個 Docker 容器,并且知道它們的 ID 或名稱。如果你還沒有創建容器,你可以使用
docker run
命令來創建一個新容器。 -
如果你是在創建容器時就想設置自動重啟策略,你可以在
docker run
命令中添加--restart=always
選項。docker run --restart=always (容器id或者容器名)
-
設置容器自動重啟策略:
使用
docker update
命令來設置容器的自動重啟策略。你可以將重啟策略設置為always
,這樣容器就會在 Docker 服務啟動時自動啟動,并且在容器退出時也會自動重啟。docker update --restart=always 容器ID或名稱
如果你不想要了就把always改成no就行
附上容器提供的其他策略:
Docker提供了幾種重啟策略,以幫助管理和維護容器的運行狀態。以下是關于always、unless-stopped、on-failure這三種重啟策略的詳細介紹:
看下策略之間先看下面的注意:
-
always策略
行為:無論容器的退出原因是什么,Docker都會自動重啟該容器。
適用場景:這個策略適用于需要持續運行的關鍵服務,如Web服務器、數據庫、消息隊列等。它確保這些服務在發生任何故障時都能自動恢復,從而提高系統的可靠性和可用性。
-
unless-stopped策略
行為:只要容器沒有被手動停止,Docker就會自動重啟它。如果容器被手動停止了,則不會自動重啟,除非再次手動啟動。
適用場景:這個策略提供了更靈活的重啟選項。它適用于那些需要在維護、升級或調試期間暫時停止的服務,但又不希望這些服務在停止后自動重啟的情況。
-
no:默認策略,在容器退出時不重啟容器。也就是說,無論容器是正常退出還是異常退出,Docker 都不會自動重啟它。
-
on-failure:在容器非正常退出時(即退出狀態碼非0)才會重啟容器。Docker 會一直重啟容器,直到容器成功運行(退出狀態碼為0)或者達到重啟次數限制(如果指定了的話)。如果沒有指定重啟次數,則會一直重啟。
-
on-failure:N:在容器非正常退出時重啟容器,但最多重啟N次。這里的N是一個正整數,表示Docker在容器退出狀態碼非0時會嘗試重啟容器的最大次數。
-
三、驗證設置
-
重啟虛擬機: 在設置了 Docker 服務和容器的自動啟動后,你可以重啟虛擬機來驗證設置是否生效。
-
檢查 Docker 服務和容器狀態: 在虛擬機重啟后,使用
systemctl status docker.service
命令來檢查 Docker 服務的狀態,確保它已經啟動。然后,使用docker ps
命令來檢查容器是否已經自動啟動。
你可以通過
?docker inspect 容器id或者名
找到下面這個名字,就能看到里面是什么策略了