精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Docker 容器的 health 健康狀態檢查

系統 Linux
在很多實際場景下,僅使用進程級健康檢查機制還遠遠不夠。比如,容器進程雖然依舊運行卻由于應用死鎖無法繼續響應用戶請求,這樣的問題是無法通過進程監控發現的。

Docker 原生健康檢查能力

自 1.12 版本之后,Docker 引入了原生的健康檢查實現。對于容器而言,最簡單的健康檢查是進程級的健康檢查,即檢驗進程是否存活。Docker Daemon 會自動監控容器中的 PID1 進程,如果 docker run 命令中指明了 restart policy,可以根據策略自動重啟已結束的容器。在很多實際場景下,僅使用進程級健康檢查機制還遠遠不夠。比如,容器進程雖然依舊運行卻由于應用死鎖無法繼續響應用戶請求,這樣的問題是無法通過進程監控發現的。

容器啟動之后,初始狀態會為 starting (啟動中)。Docker Engine 會等待 interval 時間,開始執行健康檢查命令,并周期性執行。如果單次檢查返回值非 0 或者運行需要比指定 timeout 時間還長,則本次檢查被認為失敗。如果健康檢查連續失敗超過了 retries 重試次數,狀態就會變為 unhealthy (不健康)。

   注:

  •  一旦有一次健康檢查成功,Docker 會將容器置回 healthy (健康)狀態
  •  當容器的健康狀態發生變化時,Docker Engine 會發出一個 health_status 事件。通過檢查容器監控狀態有以下兩種方式:

1. Dockerfile 方式

可以在 Dockerfile 中聲明應用自身的健康檢測配置。HEALTHCHECK指令聲明了健康檢測命令,用這個命令來判斷容器主進程的服務狀態是否正常,從而比較真實的反應容器實際狀態。

HEALTHCHECK指令格式:

  •  HEALTHCHECK [選項] CMD <命令>:設置檢查容器健康狀況的命令
  •  HEALTHCHECK NONE:如果基礎鏡像有健康檢查指令,使用這行可以屏蔽掉
  •  注 :在 Dockerfile 中HEALTHCHECK只可以出現一次,如果寫了多個,只有最后一個生效。

使用包含HEALTHCHECK指令的 Dockerfile 構建出來的鏡像,在實例化 Docker 容器的時候,就具備了健康狀態檢查的功能。啟動容器后會自動進行健康檢查。參數參考:https://docs.docker.com/engine/reference/builder/#healthcheck

HEALTHCHECK 支持下列選項:

  •  --interval=<間隔>:兩次健康檢查的間隔,默認為 30 秒;
  •  --timeout=<間隔>:健康檢查命令運行超時時間,如果超過這個時間,本次健康檢查就被視為失敗,默認 30 秒;
  •  --retries=<次數>:當連續失敗指定次數后,則將容器狀態視為 unhealthy,默認 3 次。
  •  --start-period=<間隔>: 應用的啟動的初始化時間,在啟動過程中的健康檢查失效不會計入,默認 0 秒;

參數作用解釋如下:

  •  運行狀態檢查首先會在容器啟動后的 interval 秒內運行,然后在前一次檢查完成后的 interval 秒內再次運行。
  •  如果一次狀態檢查花費的時間超過 timeout 秒,則認為這次檢查失敗。
  •  容器的運行狀態檢查連續失敗 retries 次才會被視為不健康。
  •  start period 為需要時間啟動的容器提供初始化時間。在此期間的探測失敗將不計入最大重試次數。

但是,如果在啟動期間健康檢查成功,則認為容器已啟動,所有連續失敗的情況都將計算到最大重試次數。

在HEALTHCHECK [選項] CMD后面的命令,格式和ENTRYPOINT一樣,分為 shell 格式,和 exec 格 式。命令的返回值決定了該次健康檢查的成功與否:

  •  0:成功;
  •  1:失敗;
  •  2:保留值,不要使用

假設有個鏡像是個最簡單的 Web 服務,我們希望增加健康檢查來判斷其 Web 服務是否在正常工作,我們可以用 curl 來幫助判斷,其 Dockerfile 的HEALTHCHECK可以這么寫:

FROM nginx:1.23
HEALTHCHECK --interval=5s --timeout=3s --retries=3 \
CMD curl -fs http://localhost/ || exit 1

這里設置了每 5 秒檢查一次(這里為了試驗所以間隔非常短,實際應該相對較長),如果健康檢查命令超過 3 秒沒響應,并且重試 3 次都沒響應就視為失敗,并且使用curl -fs http://localhost/ || exit 1作為健康檢查命令。

使用docker build來構建這個鏡像:

docker build -t myweb:v1 .

構建好后啟動容器:

docker run -d --name web myweb:v1

當運行該鏡像后,可以通過docker container ls看到最初的狀態為(health: starting):

docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7068d793c6e4 myweb:v1 "/docker-entrypoint.…" 3 seconds ago Up 2 seconds (health: starting) 80/tcp web

在等待幾秒鐘后,再次docker container ls,就會看到健康狀態變化為了(healthy):

$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7068d793c6e4 myweb:v1 "/docker-entrypoint.…" 18 seconds ago Up 16 seconds (healthy) 80/tcp web

如果健康檢查連續失敗超過了重試次數,狀態就會變為(unhealthy)。

為了幫助排障,健康檢查命令的輸出(包括stdout以及stderr)都會被存儲于健康狀態里,可以用 docker inspect來查看。

$ docker inspect --format '{{json .State.Health}}' web | python -m json.tool
{
"FailingStreak": 0,
"Log": [
{
"End": "2022-08-20T14:02:38.19224648+08:00",
"ExitCode": 0,
"Output": "xxx",
"Start": "2022-08-20T14:02:38.116041192+08:00"
},
{
"End": "2022-08-20T14:02:43.271105619+08:00",
"ExitCode": 0,
"Output": "xxx",
"Start": "2022-08-20T14:02:43.200932585+08:00"
}
],
"Status": "healthy"
}

2. docker run 方式

另外一種方法是在 docker run 命令中,直接指明 healthcheck 相關策略:

$ docker run  -d \
--name=myweb \
--health-cmd="curl -fs http://localhost/ || exit 1" \
--health-interval=5s \
--health-retries=12 \
--health-timeout=2s \
nginx:1.23

通過執行docker run --help | grep health命令查看相關的參數及解釋如下:

  •  --health-cmd string:運行檢查健康狀況的命令
  •   -health-interval duration:運行間隔時間(ms|s|m|h)(缺省為 0s)
  •  --health-retries int:需要報告不健康的連續失敗次數
  •  --health-start-period duration :容器在開始健康重試倒計時之前初始化的起始周期(ms|s|m|h)(默認 0)
  •  --health-timeout duration:允許一次檢查運行的最大時間(ms|s|m|h)(默認為 0s)
  •  --no-healthcheck:禁用任何容器指定的HEALTHCHECK,會使得 Dockerfile 構建出來的HEALTHCHECK功能失效。

如果是以 supervisor 來管理容器的多個服務,想通過子服務的狀態來判斷容器的監控狀態,可以使用supervisorctl status來做判斷,比如:

$ docker run --rm -d \
--name=myweb \
--health-cmd="supervisorctl status" \
--health-interval=5s \
--health-retries=3 \
--health-timeout=2s \
nginx:v1

按照此參數的設置,如果supervisorctl status檢查子服務有一個不為正常的RUNNING狀態,那么在等待大約 15 秒左右,容器的監控狀態就會從(healthy)變為(unhealthy)

3. docker-composer 方式

在 docker-composer 中,可以使用以下方式來實現對容器的健康狀況檢查(以通過 supervisor 管理子進程的容器為例):

version: '3'
services:
web:
image: nginx:v1
container_name: web
healthcheck:
test: ["CMD", "supervisorctl", "status"]
interval: 5s
timeout: 2s
retries: 3

執行成功后,等待數秒查詢容器的狀態:

$ docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------
web supervisord -c /etc/superv ... Up (healthy) 443/tcp, 80/tcp

當通過手動supervisorctl stop停掉里面的一些子服務,導致里面的子服務狀態不全為RUNNING狀態時,再查看容器的狀態:

# docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------
web supervisord -c /etc/superv ... Up (unhealthy) 443/tcp, 80/tcp
責任編輯:龐桂玉 來源: 馬哥Linux運維
相關推薦

2017-08-25 10:20:46

Docker容器機制

2024-10-31 15:16:35

2023-05-09 07:34:25

Docker健康檢查方式

2022-09-07 09:19:49

Docker健康檢查

2020-12-07 06:29:13

SpringBoot

2023-03-02 07:20:10

GRPC服務健康檢查協議

2013-11-20 14:46:43

PowerShellPowerShell Windows Ser

2013-11-20 14:41:08

PowerShellPowerShell Windows Ser

2023-03-03 08:19:35

KubernetesgRPC

2023-03-01 08:33:37

gRPC健康檢查代碼

2022-08-09 19:31:58

CPU工具命令

2017-02-24 19:57:03

IBMWatson

2021-07-15 10:25:15

集群節點檢查

2023-10-14 15:36:14

PodKubernetes

2024-02-27 17:30:11

2010-11-25 15:54:46

MSN白領

2021-02-22 10:54:28

AI 數據人工智能

2025-07-18 08:13:37

2019-07-16 14:44:52

DockerMySQL操作系統
點贊
收藏

51CTO技術棧公眾號

亚洲欧美另类人妖| 欧美曰成人黄网| 狠狠色综合一区二区| 午夜婷婷在线观看| 91一区二区| 精品电影一区二区| 国产精品天天av精麻传媒| 免费观看在线黄色网| 成人sese在线| 国产在线视频91| 亚洲国产成人精品激情在线| 久久人人99| 日韩第一页在线| 在线视频观看91| 欧美电影免费观看| 亚洲一区在线观看视频| 亚洲欧美日产图| 五月婷婷在线播放| 国产美女在线观看一区| 国产精品大陆在线观看| 在线免费观看毛片| 99久久国产综合精品成人影院| 亚洲精品aⅴ中文字幕乱码 | 国产一级一级片| 日韩aaaa| 亚洲色无码播放| 波多野结衣加勒比| 国产精品亚洲欧美日韩一区在线 | 亚洲精品一区二区三区四区| 免费看欧美女人艹b| 欧美一区二区视频97| 青青草原免费观看| 婷婷伊人综合| 视频在线观看一区二区| 人与嘼交av免费| 任你躁在线精品免费| 日韩欧美高清在线| 日韩在线一区视频| 六九午夜精品视频| 欧洲中文字幕精品| 熟女少妇精品一区二区| 免费看电影在线| 一区二区三区91| 2021狠狠干| 国产婷婷视频在线| 亚洲欧洲在线观看av| 一本色道婷婷久久欧美| 国产69精品久久app免费版| www激情久久| 欧美人与性禽动交精品| 水莓100在线视频| 99精品国产99久久久久久白柏| 国产精品视频一区二区三区经| 精品女同一区二区三区| 国产精品99久久久久久似苏梦涵 | 国产激情视频在线播放| 韩国午夜理伦三级不卡影院| 91性高湖久久久久久久久_久久99| 一本色道久久综合精品婷婷| 久久精品国产免费| 91精品中文在线| a天堂视频在线| 国产a区久久久| 国产日韩精品一区观看| 国产小视频一区| 99久久久免费精品国产一区二区| 精品亚洲欧美日韩| 欧美色18zzzzxxxxx| 国产欧美一区二区精品秋霞影院| 日韩免费av一区二区三区| 在线观看的av| 一区二区三区四区五区视频在线观看| 日韩免费在线观看av| 91在线超碰| 日本精品视频一区二区三区| 婷婷免费在线观看| 免费欧美网站| 国产视频精品免费播放| 久久美女免费视频| 欧美精品福利| 2018中文字幕一区二区三区| 五月婷婷丁香在线| 国产大片一区二区| 免费在线成人av电影| jizzjizz在线观看| 亚洲国产日产av| 男人天堂成人在线| 日韩中文字幕在线一区| 精品视频中文字幕| 黄色香蕉视频在线观看| 亚洲另类黄色| 成人久久久久久| 无码精品人妻一区二区| 欧美经典一区二区| 国产精品久久久久久久乖乖| 成人看片网站| 欧美精品一区男女天堂| 中文字幕第24页| 亚洲性人人天天夜夜摸| 国产精品黄视频| 亚洲黄色片视频| 中文字幕精品在线不卡| 大陆av在线播放| 96sao精品免费视频观看| 亚洲第五色综合网| 日本精品在线免费观看| 国产欧美亚洲一区| 亚洲一区久久久| 国产最新视频在线观看| 亚洲国产成人91porn| a在线观看免费视频| 久草精品视频| 久久中文久久字幕| 99re国产在线| 99热99精品| 久久99久久99精品| 日本黄色成人| 国产一区二区三区毛片| 九九热精品视频在线| 国产成人自拍网| 亚洲欧洲免费无码| 久久91导航| 亚洲精品www久久久| 中文字幕av免费在线观看| 日韩精品一二三四| 欧美成ee人免费视频| 免费看电影在线| 欧美岛国在线观看| 蜜臀av午夜精品久久| 免费视频一区二区| 日韩理论片在线观看| 女生影院久久| 亚洲理论在线a中文字幕| 国产性一乱一性一伧一色| 激情综合色播激情啊| 亚洲精品美女久久7777777| 在线看的毛片| 亚洲国产中文字幕久久网| 午夜写真片福利电影网| 久国产精品韩国三级视频| 亚洲精品二区| yy6080久久伦理一区二区| 亚洲男人天天操| 依依成人综合网| 久久亚洲综合av| 少妇高潮喷水久久久久久久久久| 欧美人妖在线观看| 欧美在线观看视频| 婷婷五月综合激情| 欧美日韩激情小视频| 呦呦视频在线观看| 亚洲影视综合| 日韩欧美三级电影| 欧美成人三级| 久久艹在线视频| 国产高清不卡视频| 亚洲成人久久影院| www.久久国产| 天堂久久久久va久久久久| 日本免费一区二区三区| 国产第一精品| 久久久精品免费视频| a天堂中文在线观看| 亚洲h精品动漫在线观看| 男男做爰猛烈叫床爽爽小说| 米奇777在线欧美播放| 亚洲国产精品久久久久婷婷老年| 国产精久久久| 久久久久久久久久亚洲| 视频三区在线观看| 在线观看视频一区二区| 国产美女久久久久久| 成人小视频免费观看| 欧美韩国日本在线| 欧美freesextv| 147欧美人体大胆444| sm性调教片在线观看| 亚洲色图50p| 99久久精品无免国产免费| 一区二区三区四区不卡视频| 亚洲av网址在线| 奇米一区二区三区| 国产 欧美 日韩 一区| 天天躁日日躁狠狠躁欧美巨大小说| 国产成人精品电影| 污视频免费在线观看| 日韩精品在线视频观看| 亚洲免费视频二区| 亚洲国产精品嫩草影院| av免费播放网站| 国产精品99久久久久| 日韩无套无码精品| 欧美福利专区| 日本成人三级电影网站| 视频亚洲一区二区| 国产精品91在线观看| 亚洲91av| 中文字幕亚洲综合久久| 午夜视频福利在线| 337p亚洲精品色噜噜噜| 欧美啪啪小视频| 亚洲综合免费观看高清完整版在线 | 中文字幕视频网| 亚洲精品一二三四区| 日韩一级av毛片| www.欧美色图| 性久久久久久久久久久久久久| 亚洲免费在线| 国产精品视频二| 欧美a级片视频| 欧美日韩系列| 国产精品三p一区二区| 国产色综合天天综合网| 中文字幕人成乱码在线观看 | 国产又爽又黄ai换脸| 蜜桃精品wwwmitaows| 成人xxxxx色| 自拍偷拍亚洲| 国产精品视频久久| 欧美xx视频| 欧美亚洲另类制服自拍| 爱看av在线入口| 欧美日本精品在线| jizzjizz亚洲| 深夜福利亚洲导航| 91青青在线视频| 亚洲欧美综合v| 无码精品视频一区二区三区 | 欧美午夜不卡影院在线观看完整版免费| 日韩欧美在线一区二区| 日韩深夜影院| 国内精品二区| 国产精品15p| 国产精华一区| 视频一区中文字幕精品| 亚洲精品女av网站| 成人久久精品| 亚洲a级在线播放观看| 国产乱子精品一区二区在线观看| 日本不卡免费高清视频| 欧美伦理91| 2019亚洲男人天堂| 粉嫩一区二区| 91高清视频免费观看| 黄色在线观看www| 国内外成人免费激情在线视频网站 | 一区二区三区精品| 久久精品一区二区三| 亚洲男帅同性gay1069| 希岛爱理中文字幕| 亚洲三级在线观看| 久久久久亚洲av片无码| 亚洲天天做日日做天天谢日日欢| 国产稀缺精品盗摄盗拍| 亚洲乱码一区二区三区在线观看| 久久免费看少妇高潮v片特黄| 亚洲丝袜制服诱惑| 麻豆成人在线视频| 午夜精品成人在线| 7799精品视频天天看| 欧美中文字幕不卡| 亚洲综合精品在线| 91精品国产高清一区二区三区蜜臀 | 欧美日韩在线观看一区| 精品欧美激情在线观看| 亚洲高清不卡一区| 偷偷www综合久久久久久久| 在线观看18视频网站| 亚洲高清激情| 国产免费人做人爱午夜视频| 轻轻草成人在线| 超碰人人cao| 99国产精品一区| 亚洲精品国产熟女久久久| 国产精品国产a| 国产一级生活片| 色婷婷狠狠综合| 国产乱码精品一区二区三区精东 | 成人观看高清在线观看免费| 免费精品一区| 日本视频一区二区不卡| 小小影院久久| av7777777| 另类小说视频一区二区| 26uuu国产| 国产亚洲欧美激情| 国产天堂av在线| 天天影视涩香欲综合网| 亚洲午夜在线播放| 日韩精品一区二区三区视频播放 | 欧美成人免费高清视频| 激情综合色综合久久综合| 在线免费播放av| 国产精品国产精品国产专区不蜜 | 久久96国产精品久久99软件| 第四色成人网| 97视频在线免费| 久久国产精品99久久久久久老狼| 天天躁日日躁狠狠躁av麻豆男男| 久久九九影视网| 久久精品视频8| 欧美日韩国产综合视频在线观看| 日韩一区二区三区在线观看视频| 伊人伊成久久人综合网小说| 国产精品69xx| 成人亚洲欧美一区二区三区| 亚洲系列另类av| www.男人天堂网| 久久精品99久久久| 国产综合精品在线| 亚洲成av人片在线观看| 国产精品老熟女视频一区二区| 国产婷婷成人久久av免费高清| av在线免费网址| 国产精品嫩草影院一区二区| 欧美一区二区三区久久| 91精品国产吴梦梦| 老司机免费视频一区二区| 日韩精品卡通动漫网站| 亚洲国产成人精品视频| 国产精品一区二区黑人巨大| 国产亚洲人成a一在线v站| 黄色软件视频在线观看| 国产精品久久久久久久久久久久冷 | 成人交换视频| 日韩精品欧美在线| 国产精品嫩草99av在线| av不卡中文字幕| 亚洲欧美一区二区三区国产精品 | 亚洲成av人乱码色午夜| 国产精品扒开做爽爽爽的视频| 国产精品第一页在线| 国产99精品| 欧在线一二三四区| 久久午夜羞羞影院免费观看| 在线天堂中文字幕| 亚洲精品久久视频| 亚洲综合影视| 97超碰人人看人人 | 免费观看黄色一级视频| 欧美福利视频网站| 99国产精品久久一区二区三区| 久久久无码中文字幕久...| 激情综合网天天干| 波多野结衣家庭教师| 欧美一区二区三区在线看| 黄色av免费在线| 91色中文字幕| 欧美精品二区| 性高潮免费视频| 香蕉乱码成人久久天堂爱免费| 神宫寺奈绪一区二区三区| 国内伊人久久久久久网站视频| 红杏aⅴ成人免费视频| 欧美a在线视频| 久久综合色综合88| 无码人妻精品一区二区三区9厂 | 美女国产一区二区三区| a级黄色免费视频| 欧美理论电影在线| av免费在线免费| 国产伦精品一区二区三区四区免费| 91久久亚洲| 自拍偷拍亚洲天堂| 欧美日韩精品二区第二页| 高h视频在线观看| 国产不卡一区二区三区在线观看| 亚洲免费大片| 一级片视频免费看| 在线成人高清不卡| www欧美xxxx| 美女被啪啪一区二区| 免费成人在线观看| 国产这里有精品| 日韩精品福利在线| av成人免费看| 人妻无码一区二区三区四区| 99精品久久只有精品| 久久久久久av无码免费看大片| 欧美成人精品在线播放| 久9re热视频这里只有精品| 老熟妇仑乱视频一区二区 | 天天干天天色天天爽| www.日韩精品| 最新中文字幕第一页| 欧美成年人视频网站| 亚洲精品3区| 亚洲天堂av一区二区三区| 亚洲第一搞黄网站| 1024国产在线| 国产精品二区二区三区| 日韩和欧美一区二区三区| 永久看片925tv| 亚洲人成网站免费播放| 日本一区二区三区播放| 久久久久狠狠高潮亚洲精品| 自拍偷拍亚洲欧美日韩| 秋霞av在线| 国产厕所精品在线观看| 日本成人在线一区|