新聞中心
本篇內(nèi)容主要講解“Docker容器健康檢查是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Docker容器健康檢查是什么”吧!
公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)公司推出沿河免費(fèi)做網(wǎng)站回饋大家。
Docker 容器健康檢查指的是在 Dockerfile 中使用 HEALTHCHECK
指令對(duì)容器的運(yùn)行狀態(tài)進(jìn)行檢查, 并在 docker ps
的 STATUS 欄顯示 healthy/unhealthy。
HEALTHCHECK
指令有兩種格式:
HEALTHCHECK [OPTIONS] CMD command
(通過(guò)在容器內(nèi)運(yùn)行命令檢查容器的健康狀態(tài))HEALTHCHECK NONE
(禁用從基礎(chǔ)鏡像中繼承任何健康檢查)
HEALTHCHECK
指令告訴 Docker 如何測(cè)試一個(gè)容器,以檢查它是否仍在工作。 這可以檢測(cè)到一些情況,例如 web 服務(wù)器陷入無(wú)限循環(huán),無(wú)法處理新的連接,即使服務(wù)器進(jìn)程仍在運(yùn)行。
當(dāng)容器指定了健康檢查時(shí),除了正常狀態(tài)外,它還具有健康狀態(tài)。此狀態(tài)初始為 starting
。 只要健康檢查通過(guò),它就會(huì)恢復(fù)到 healthy
(無(wú)論它以前處于什么狀態(tài))。在連續(xù)失敗一定次數(shù)后,它就會(huì)變得 unhealthy
。
CMD
之前可以出現(xiàn)的選項(xiàng)有:
--interval=DURATION(默認(rèn):30s)
--timeout=DURATION(默認(rèn):30s)
--start-period=DURATION(默認(rèn):0s)
--retries=N(默認(rèn):3)
運(yùn)行狀態(tài)檢查首先會(huì)在容器啟動(dòng)后的 interval
秒內(nèi)運(yùn)行,然后在前一次檢查完成后的 interval
秒內(nèi)再次運(yùn)行。
如果一次狀態(tài)檢查花費(fèi)的時(shí)間超過(guò) timeout
秒,則認(rèn)為這次檢查失敗。
容器的運(yùn)行狀態(tài)檢查連續(xù)失敗 retries
次才會(huì)被視為不健康。
start period
為需要時(shí)間啟動(dòng)的容器提供初始化時(shí)間。在此期間的探測(cè)失敗將不計(jì)入最大重試次數(shù)。 但是,如果在啟動(dòng)期間健康檢查成功,則認(rèn)為容器已啟動(dòng),所有連續(xù)失敗的情況都將計(jì)算到最大重試次數(shù)。
Dockerfile 中只能有一個(gè) HEALTHCHECK
指令。如果列出多個(gè),則只有最后一個(gè) HEALTHCHECK
才會(huì)生效。
CMD
關(guān)鍵字后面的命令可以是 shell 命令(例如 HEALTHCHECK CMD /bin/check-running
)或 exec 數(shù)組(與其他 Dockerfile 命令一樣,有關(guān)詳細(xì)信息,請(qǐng)參見(jiàn) ENTRYPOINT
)。
command
的退出狀態(tài)表示容器的健康狀態(tài)。可能的值是:
0:成功--容器運(yùn)行良好,可以使用
1:不健康—-容器不能正常工作
2:保留--不使用此退出碼
例如,每五分鐘左右檢查一次 web 服務(wù)器是否能在三秒內(nèi)為站點(diǎn)的主頁(yè)提供服務(wù):
HEALTHCHECK --interval=5m --timeout=3s \ CMD curl -f http://localhost/ || exit 1
為了幫助調(diào)試失敗的探測(cè),command
寫(xiě)在 stdout 或 stderr 上的任何輸出文本(UTF-8編碼)都將存儲(chǔ)在健康狀態(tài)中,并且可以通過(guò) docker inspect
進(jìn)行查詢。 這樣的輸出應(yīng)該保持簡(jiǎn)短(目前只存儲(chǔ)前4096個(gè)字節(jié))。
當(dāng)容器的健康狀態(tài)發(fā)生變化時(shí),將生成一個(gè)具有新?tīng)顟B(tài)的 health_status
事件。
到此,相信大家對(duì)“Docker容器健康檢查是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
分享標(biāo)題:Docker容器健康檢查是什么
網(wǎng)頁(yè)URL:http://ef60e0e.cn/article/jioecd.html