如何自啟動Docker容器-創(chuàng)新互聯(lián)

這篇文章給大家介紹如何自啟動Docker容器,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

鹿寨網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,鹿寨網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為鹿寨上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個(gè)售后服務(wù)好的鹿寨做網(wǎng)站的公司定做!

容器自啟動

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

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

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

使用restart policy

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

FlagDescription
no不自動重啟容器. (默認(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è)例子:下面的命令啟動一個(gè)Redis容器,當(dāng)Redis容器停止后或者Docker被重啟時(shí),Redis容器都會重啟。

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

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

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

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

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

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

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

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

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

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

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

Docker容器開機(jī)自動啟動

在使用docker run啟動容器時(shí),使用--restart參數(shù)來設(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í)才從新啟動容器;

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

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

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

關(guān)于如何自啟動Docker容器就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

當(dāng)前題目:如何自啟動Docker容器-創(chuàng)新互聯(lián)
分享地址:http://bm7419.com/article14/dsssde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版營銷型網(wǎng)站建設(shè)、定制開發(fā)、App設(shè)計(jì)網(wǎng)站設(shè)計(jì)公司、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站