docker 容器自動啟動run

部署項目服務(wù)器時,為了應(yīng)對停電等情況影響正常web項目的訪問,會把Docker容器設(shè)置為開機自動啟動。

   在使用docker run啟動容器時,使用--restart參數(shù)來設(shè)置:
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具體參數(shù)值詳細信息:

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

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

   always - 無論退出狀態(tài)是如何,都重啟容器;

如果創(chuàng)建時未指定 --restart=always ,可通過update 命令設(shè)置

 docker update --restart=always xxx  
   還可以在使用on - failure策略時,指定Docker將嘗試重新啟動容器的最大次數(shù)。默認情況下,Docker將嘗試永遠重新啟動容器。
sudo docker run --restart=on-failure:10 redis
  1. Docker容器的重啟策略

Docker容器的重啟策略是面向生產(chǎn)環(huán)境的一個啟動策略,在開發(fā)過程中可以忽略該策略。

Docker容器的重啟都是由Docker守護進程完成的,因此與守護進程息息相關(guān)。

Docker容器的重啟策略如下:

no,默認策略,在容器退出時不重啟容器
on-failure,在容器非正常退出時(退出狀態(tài)非0),才會重啟容器
on-failure:3,在容器非正常退出時重啟容器,最多重啟3次
always,在容器退出時總是重啟容器
unless-stopped,在容器退出時總是重啟容器,但是不考慮在Docker守護進程啟動時就已經(jīng)停止了的容器

  1. Docker容器的退出狀態(tài)碼

docker run的退出狀態(tài)碼如下:

0,表示正常退出
非0,表示異常退出(退出狀態(tài)碼采用chroot標(biāo)準(zhǔn))
125,Docker守護進程本身的錯誤
126,容器啟動后,要執(zhí)行的默認命令無法調(diào)用
127,容器啟動后,要執(zhí)行的默認命令不存在
其他命令狀態(tài)碼,容器啟動后正常執(zhí)行命令,退出命令時該命令的返回狀態(tài)碼作為容器的退出狀態(tài)碼

  1. docker run的--restart選項

通過--restart選項,可以設(shè)置容器的重啟策略,以決定在容器退出時Docker守護進程是否重啟剛剛退出的容器。

--restart選項通常只用于detached模式的容器。

--restart選項不能與--rm選項同時使用。顯然,--restart選項適用于detached模式的容器,而--rm選項適用于foreground模式的容器。

在docker ps查看容器時,對于使用了--restart選項的容器,其可能的狀態(tài)只有Up或Restarting兩種狀態(tài)。

示例:

docker run -d --restart=always ba-208
docker run -d --restart=on-failure:10 ba-208

補充:

查看容器重啟次數(shù)

docker inspect -f "{{ .RestartCount }}" ba-208

查看容器最后一次的啟動時間

docker inspect -f "{{ .State.StartedAt }}" ba-208
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容