濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Docker容器自啟動(dòng)的實(shí)現(xiàn)方法

Docker容器自啟動(dòng)的實(shí)現(xiàn)方法

熱門(mén)標(biāo)簽:七大洲地圖標(biāo)注 新鄉(xiāng)人工智能電話機(jī)器人加盟 地圖標(biāo)注w是什么方向 臨汾電銷(xiāo)機(jī)器人費(fèi)用 昆明外呼系統(tǒng) 400電話申請(qǐng)找哪家公司 福州呼叫中心外呼系統(tǒng)哪家好 河南省鄭州市地圖標(biāo)注 地圖標(biāo)注需要提交啥資料入駐

容器自啟動(dòng)

Docker提供了restart policy機(jī)制,可以在容器退出或者Docker重啟時(shí)控制容器能夠自啟動(dòng)。這種Restart policy可以保證相關(guān)容器按照正確順序啟動(dòng)。雖然也可以通過(guò)進(jìn)程監(jiān)控的方式(如systemd)來(lái)完成這種動(dòng)作,但Docker還是建議盡量避免使用進(jìn)程監(jiān)控的方式來(lái) "自啟動(dòng)" 容器。

Docker的 Restart policy與dockerd命令的--live-restore啟動(dòng)標(biāo)志還有區(qū)別:--live-restore標(biāo)志可以在Docker升級(jí)的時(shí)候保證容器繼續(xù)運(yùn)行,但是網(wǎng)絡(luò)以及用戶(hù)終端輸入會(huì)被中斷。

那到底什么是restart policy呢?我們來(lái)看看實(shí)際的情況吧。

使用restart policy

restart policy在使用docker run啟動(dòng)容器時(shí)通過(guò)--restart標(biāo)志指定,這個(gè)標(biāo)志有多個(gè)value可選,不同的value有不同的行為,如下表所列:

Flag Description
no 不自動(dòng)重啟容器. (默認(rèn)value)
on-failure  容器發(fā)生error而退出(容器退出狀態(tài)不為0)重啟容器
unless-stopped  在容器已經(jīng)stop掉或Docker stoped/restarted的時(shí)候才重啟容器
always  在容器已經(jīng)stop掉或Docker stoped/restarted的時(shí)候才重啟容器

舉個(gè)例子:下面的命令啟動(dòng)一個(gè)Redis容器,當(dāng)Redis容器停止后或者Docker被重啟時(shí),Redis容器都會(huì)重啟。

$ docker run -dit --restart unless-stopped redis

Restart policy細(xì)節(jié)

使用restart policies時(shí)需要注意如下細(xì)節(jié):

(1) 容器只有在成功啟動(dòng)后restart policy才能生效。這里的"成功啟動(dòng)"是指容器處于up至少10秒且已經(jīng)處于docker監(jiān)管。這是避免沒(méi)有成功啟動(dòng)的容器陷入restart的死循環(huán)。

(2)如果手動(dòng)(manually)的stop(與前面的explicitly stopped有何區(qū)別)一個(gè)容器,容器設(shè)置的restart policy將會(huì)被忽略,除非Docker daemon重啟或者容器手動(dòng)重啟。這是避免了另外一種死循環(huán)。

(3)restart policies只能用于容器,對(duì)于swarm services其restart policies有不通過(guò)的配置。

 進(jìn)程監(jiān)控

如果上面講的restart policies無(wú)法滿(mǎn)足需求,也可以采用進(jìn)程監(jiān)控的管理方案,如upstart,systemd或者supervisor等等。

這種方案中,進(jìn)程監(jiān)控服務(wù)運(yùn)行在容器中。它可以監(jiān)控一個(gè)進(jìn)程是否運(yùn)行,并可以在此進(jìn)程沒(méi)有運(yùn)行的時(shí)候去啟動(dòng)該進(jìn)程。而這發(fā)生的一切Docker都毫無(wú)知覺(jué)。

Docker不推薦此種方法來(lái)進(jìn)行進(jìn)程監(jiān)控,理由很簡(jiǎn)單,這種方法和系統(tǒng)平臺(tái)甚至linux發(fā)行版相關(guān)。

原文:https://docs.docker.com/engine/admin/start-containers-automatically/#use-a-process-manager

Docker容器開(kāi)機(jī)自動(dòng)啟動(dòng)

在使用docker run啟動(dòng)容器時(shí),使用--restart參數(shù)來(lái)設(shè)置:

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

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

--restart具體參數(shù)值詳細(xì)信息:

  • no -  容器退出時(shí),不重啟容器;
  • on-failure - 只有在非0狀態(tài)退出時(shí)才從新啟動(dòng)容器;
  • always - 無(wú)論退出狀態(tài)是如何,都重啟容器;

還可以在使用on - failure策略時(shí),指定Docker將嘗試重新啟動(dòng)容器的最大次數(shù)。默認(rèn)情況下,Docker將嘗試永遠(yuǎn)重新啟動(dòng)容器。

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:鎮(zhèn)江 臨沂 岳陽(yáng) 股票 ???/a> 紅河 烏海 四川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Docker容器自啟動(dòng)的實(shí)現(xiàn)方法》,本文關(guān)鍵詞  Docker,容器,自,啟動(dòng),的,實(shí)現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Docker容器自啟動(dòng)的實(shí)現(xiàn)方法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Docker容器自啟動(dòng)的實(shí)現(xiàn)方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    通河县| 乌审旗| 保山市| 长春市| 长治县| 顺平县| 乌拉特后旗| 阳东县| 临夏县| 克拉玛依市| 南投县| 芜湖县| 台安县| 古蔺县| 通州区| 界首市| 大化| 乌苏市| 九寨沟县| 昌宁县| 叙永县| 墨竹工卡县| 婺源县| 洱源县| 巴彦淖尔市| 济阳县| 泰兴市| 旌德县| 乐平市| 二连浩特市| 东至县| 阿拉善左旗| 额敏县| 溧阳市| 九龙城区| 屏山县| 南靖县| 惠水县| 子洲县| 南康市| 东山县|