Docker 自動重新啟動容器

2021/12/09 201 0 伺服器

Docker 有提供重啟機制,可以控制容器在停止時自動重新啟動,或者是在 Docker 重開後自動啟動,重新啟動機制可確保連結的容器以正確的順序啟動。基本上在電腦(伺服器)被重新打開後,Docker 會自動重啟,但裡面原來運作著的容器預設是不會自動重新啟動的,因此就要在建立容器時使用 docker run --restart=? 指令指定重啟機制,或是已經建立的容器,則可以透過 docker update --restart=? [容器名稱] 指令更新容器的重啟機制。

--restart 參數(?)說明

no ➡️ 不自動重新啟動容器。(預設值)
on-failure[:max-retries] ➡️ 如果容器由於非零的結束代碼錯誤而停止,則重新啟動容器。可選:使用 :max-retries 限制 Docker 守護行程嘗試重新啟動容器的次數。
always ➡️ 如果容器停止,請始終重新啟動容器。如果手動停止,則僅當 Docker 守護行程重新啟動或容器本身手動重新啟動時,才會重新啟動。(請參閱重新啟動機制詳細資訊中列出的第二個項目)
unless-stopped ➡️ 與 always 類似,不同之處在於當容器停止(手動或其他方式)時,即使在 Docker 守護行程重新啟動後,它也不會重新啟動。

使用 --restart 請注意以下事項:

  • 重新啟動機制僅在容器成功啟動後生效。在這種情況下,成功啟動意味著容器至少要啟動 10 秒,並且 Docker 已開始監視它。這可以防止沒有成功啟動的容器進入重新啟動死迴圈。
  • 如果手動停止容器,則在 Docker 守護行程重新啟動或手動重新啟動容器之前,將忽略其重新啟動機制。這是防止再次進入重新啟動死迴圈。
  • 這個重新啟動機制僅適用於容器。

我常用 --restart=always 做到自動重啟,在 docker-compose.yml 中也能透過 restart: always 指定重啟機制。希望有幫助到您。


▲ 精選圖片。

贊助廣告 ‧ Sponsor advertisements

留言區 / Comments

萌芽論壇