国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 服務(wù)器 > Web服務(wù)器 > 正文

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

2024-09-01 13:55:43
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

容器自啟動(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ò)以及用戶終端輸入會(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ú)法滿足需求,也可以采用進(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í)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到服務(wù)器教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 民丰县| 夹江县| 彭山县| 罗甸县| 巴林右旗| 浦县| 竹溪县| 乌拉特前旗| 吉首市| 泾源县| 沅江市| 井研县| 伊金霍洛旗| 砚山县| 辛集市| 九寨沟县| 玉环县| 金湖县| 宁国市| 郎溪县| 博乐市| 布尔津县| 姚安县| 镇坪县| 富平县| 永福县| 长乐市| 天柱县| 靖宇县| 扶绥县| 且末县| 东阳市| 桂平市| 衡阳县| 类乌齐县| 安顺市| 大化| 三穗县| 松江区| 荔波县| 泽普县|