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

如何優雅的對 Docker 容器進行健康檢查

系統 Linux
自 1.12 版本之后,Docker 引入了原生的健康檢查實現。對于容器而言,最簡單的健康檢查是進程級的健康檢查,即檢驗進程是否存活。

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

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

注:

  •  1. 一旦有一次健康檢查成功,Docker 會將容器置回 healthy (健康)狀態
  •  2. 當容器的健康狀態發生變化時,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狀態時,再查看容器的狀態:

healthcheck:
disable: true
責任編輯:龐桂玉 來源: 奇妙的Linux世界
相關推薦

2017-08-25 10:20:46

Docker容器機制

2023-05-09 07:34:25

Docker健康檢查方式

2020-12-07 06:29:13

SpringBoot

2023-03-02 07:20:10

GRPC服務健康檢查協議

2023-03-03 08:19:35

KubernetesgRPC

2022-08-23 10:04:23

Dockerhealth健康檢查

2023-03-01 08:33:37

gRPC健康檢查代碼

2021-07-15 10:25:15

集群節點檢查

2023-10-14 15:36:14

PodKubernetes

2024-02-27 17:30:11

2021-01-15 05:38:28

ASPHttp端口

2024-10-31 15:16:35

2025-07-18 08:13:37

2021-04-18 10:34:28

Spring Clou郵件釘釘

2021-03-05 00:06:12

Docker容器內存

2022-02-28 07:40:23

Nacos注冊中心客戶端

2021-09-18 16:10:48

Spring BootJava微服務

2022-04-26 05:55:13

容器K8s管理debug問題

2015-07-28 11:10:22

Docker容器容器編排

2021-07-05 06:51:41

Nacos微服務源碼
點贊
收藏

51CTO技術棧公眾號

欧美激情一区二区三区p站| 亚洲一区二区在线观| 日韩熟女精品一区二区三区| 人体久久天天| 在线影院国内精品| 一区二区三区偷拍| 丰满人妻熟女aⅴ一区| 媚黑女一区二区| 久久视频精品在线| 少妇被狂c下部羞羞漫画| 韩国精品主播一区二区在线观看| 中文字幕一区二区三区在线播放 | 免费在线观看一级片| 欧美sss在线视频| 欧美视频在线不卡| 男女激情免费视频| 在线播放麻豆| 91在线视频播放| 成人中文字幕在线观看 | 欧美在线观看你懂的| 日本黄网站色大片免费观看| 可以在线观看的av网站| 国产精品1区二区.| 日韩美女视频免费看| 青青草原国产视频| 红桃成人av在线播放| 精品国产一区二区亚洲人成毛片| 天天影视综合色| av资源网在线播放| 综合分类小说区另类春色亚洲小说欧美 | 精品国产髙清在线看国产毛片| 一路向西2在线观看| 色多多在线观看| 亚洲综合免费观看高清完整版在线| 日产精品一线二线三线芒果| 神马午夜在线观看| 国产99久久久国产精品潘金| 国产欧美久久一区二区| 国产精品suv一区| 精品69视频一区二区三区Q| 日韩视频免费看| 阿v天堂2014| 四虎5151久久欧美毛片| 亚洲成av人乱码色午夜| 亚洲国产欧美91| 福利视频一区| 色综合久久久久综合体桃花网| 被灌满精子的波多野结衣| 黄av在线播放| 亚洲色图丝袜美腿| 国产免费一区二区三区四在线播放| av在线播放网站| 国产情人综合久久777777| 久久综合狠狠综合久久综青草| 免费观看国产视频| 成人h精品动漫一区二区三区| 91免费精品视频| 一卡二卡三卡在线观看| 久久国产生活片100| 国产精品久久久久久中文字| 黄色污污视频软件| 免费看黄色91| 国产在线观看91精品一区| 中文字幕在线观看第二页| 麻豆视频一区二区| 国产在线高清精品| 精品久久久中文字幕人妻| 国产成人精品亚洲日本在线桃色| 91沈先生播放一区二区| 国产高清视频免费观看| 丁香一区二区三区| 国产一区二区三区四区hd| 在线观看xxx| 久久男人中文字幕资源站| 青娱乐一区二区| 超碰免费97在线观看| 国产精品污网站| japanese在线视频| 女囚岛在线观看| 午夜精品久久久久久久久久| 国产乱子夫妻xx黑人xyx真爽| 欧美最新精品| 欧美日韩激情在线| 日本wwwxx| 老司机在线精品视频| 亚洲精品在线视频| 欧日韩不卡视频| 欧美成人一区二免费视频软件| 久久久久成人网| 手机看片久久久| 久久成人免费网站| 国产伦精品一区| 国产高清一区在线观看| 亚洲天堂成人在线观看| 九一国产精品视频| 高清亚洲高清| 日韩三级视频在线观看| 草草影院第一页| 五月天久久网站| 久久久久久网站| 欧美性受xxx黑人xyx性爽| 国产一区二区久久| 精品欧美一区二区精品久久| 日本在线免费网| 偷窥少妇高潮呻吟av久久免费| 小泽玛利亚视频在线观看| 超碰成人97| 国产亚洲美女久久| 91精品国产高潮对白| 日本在线不卡视频| 国产一区自拍视频| 黄在线免费看| 色999日韩国产欧美一区二区| 樱花草www在线| 羞羞色国产精品网站| 欧美精品在线观看| 中文字幕一级片| 99精品视频在线观看免费| 熟女熟妇伦久久影院毛片一区二区| 爱搞国产精品| 日韩欧美自拍偷拍| 亚洲不卡的av| 久久国产成人| 国产精品视频一区二区三区经| 色网站免费在线观看| 日韩欧美在线国产| 99免费观看视频| 亚洲91中文字幕无线码三区| 国产激情久久久| 特黄aaaaaaaaa真人毛片| 亚洲欧美日韩电影| 依人在线免费视频| av在线不卡顿| 欧美中在线观看| 色欲久久久天天天综合网| 亚洲欧美福利一区二区| 婷婷免费在线观看| 精品国产一区二区三区久久久樱花 | 亚洲综合另类| 国产视色精品亚洲一区二区| 欧美人与性动交α欧美精品图片| 欧美另类变人与禽xxxxx| 国产伦精品一区二区三区视频女| 香蕉av777xxx色综合一区| 国产乱码精品一区二区三区不卡| 18av在线视频| 日韩一区二区在线免费观看| 国产午夜手机精彩视频| 精品伊人久久久久7777人| 一区在线电影| 欧美videos粗暴| zzjj国产精品一区二区| 91午夜交换视频| 亚洲色图一区二区三区| 青青草原播放器| 欧美色图麻豆| 国产精品香蕉视屏| 亚洲小少妇裸体bbw| 国产丝袜精品第一页| 亚洲va在线观看| 国产亚洲精品aa| 特级丰满少妇一级| 婷婷亚洲五月色综合| 91精品久久久久久久久久久久久| 麻豆免费在线观看| 欧美成人福利视频| 免费在线观看黄网站| 99精品欧美一区二区三区小说 | 亚洲天堂黄色片| 国产福利一区在线| 免费看日本毛片| 最新国产精品视频| 国产欧美日韩亚洲精品| 羞羞视频在线免费国产| 亚洲电影av在线| 亚洲av无码精品一区二区| 中文字幕二三区不卡| 成人性生交视频免费观看| 国内自拍一区| 农村寡妇一区二区三区| 国产极品一区| 欧美极品少妇xxxxⅹ裸体艺术 | 久久久久久久午夜| 国产免费av一区二区三区| 国产欧美精品xxxx另类| 黄色影院在线看| 亚洲欧美一区二区三区在线| 亚洲字幕av一区二区三区四区| 亚洲激情校园春色| 亚洲做受高潮无遮挡| 美国三级日本三级久久99| 成人免费a级片| 奇米狠狠一区二区三区| 亚洲xxx自由成熟| 91老司机福利在线| 日韩在线观看网址| 男人天堂一区二区| 欧美色综合网站| 国产一级免费观看| 中文乱码免费一区二区| 中国黄色片视频| 美女网站在线免费欧美精品| 99热久久这里只有精品| 日韩在线观看一区 | 欧美性受xxxx狂喷水| 欧洲一区二区av| 精品视频在线观看免费| 中文字幕高清不卡| 中文字幕丰满孑伦无码专区| 国产福利一区二区| 亚洲性生活网站| 亚洲先锋成人| 艳母动漫在线免费观看| 精品国产91乱码一区二区三区四区| 99在线视频播放| 久久久久伊人| 国产精品av网站| 国产精品vvv| 久久av中文字幕| av黄色在线观看| 亚洲精品久久久久久久久| 国产欧美熟妇另类久久久| 色系网站成人免费| www.国产成人| 一区二区三区在线视频观看| 91麻豆制片厂| 2021国产精品久久精品| 亚洲无人区码一码二码三码| 国产米奇在线777精品观看| 亚洲男人天堂色| 国产精品一二| 日本手机在线视频| 欧美特黄视频| 91精品国产毛片武则天| 91精品国产自产拍在线观看蜜| 亚洲精品久久区二区三区蜜桃臀| 亚洲国产网址| 精品国产一区二区三区四区精华| 亚洲精品福利| 99re国产视频| 一区二区日韩| 成人av网站观看| 亚洲高清在线一区| 91久久国产自产拍夜夜嗨| 精品视频一区二区三区在线观看| 成人高h视频在线| 精品国产黄a∨片高清在线| 国产欧美日韩91| 少妇精品视频在线观看| 国产欧美日韩高清| 四虎国产精品永久在线国在线| 国产精品视频色| 日韩毛片免费视频一级特黄| 国产日韩专区在线| 大胆国模一区二区三区| 91久热免费在线视频| 精品91福利视频| aa成人免费视频| 免费观看成人www动漫视频| 九9re精品视频在线观看re6| 亚洲人成网77777色在线播放| 欧美xxxx黑人又粗又长密月| 国产伦精品一区二区三区千人斩| 日本视频一区在线观看| 日韩欧美一区二区三区在线视频| 一区精品在线| 精品999成人| 黄www在线观看| 视频一区二区中文字幕| 天堂视频免费看| 国产剧情一区在线| youjizz.com国产| 2020国产成人综合网| 五月天综合视频| 亚洲欧洲精品天堂一级| 精品少妇theporn| 欧美午夜激情在线| 这里只有精品国产| 日韩精品在线一区| 欧美性孕妇孕交| 中文字幕免费精品一区| 天天色天天射天天综合网| 97在线观看视频| 成人在线免费| 国产一区二区免费电影| 日韩在线观看| 波多野结衣综合网| 美国一区二区三区在线播放 | 26uuu另类欧美亚洲曰本| 国产18无套直看片| 亚洲综合色婷婷| 91久久国产综合久久91| 欧美一区二区观看视频| 神马久久久久| 免费不卡欧美自拍视频| 天堂资源在线| 亚洲在线观看视频网站| 亚洲涩涩av| 国产欧美精品aaaaaa片| 日本aⅴ免费视频一区二区三区 | 久久伊人精品天天| 亚洲色图官网| 91免费观看| 久久国产小视频| 一区二区传媒有限公司| 国产一区二区三区四区五区美女| 女同毛片一区二区三区| 亚洲同性gay激情无套| 国产伦精品一区二区三区视频网站| 91精品国产一区二区三区香蕉| 色哟哟在线观看| 色综合久久久久久中文网| 欧美成人app| 久久精品人成| 激情久久久久| 波多野结衣网页| 国产精品丝袜久久久久久app| 国产三级av片| 亚洲高清在线观看| 伊人在我在线看导航| 国产精品视频中文字幕91| 首页亚洲中字| 国产综合中文字幕| 国产精品一卡二卡| 影音先锋男人资源在线观看| 日韩欧美高清视频| 婷婷在线免费视频| 九九视频这里只有精品| 99视频有精品高清视频| 亚洲午夜高清视频| 日韩电影免费在线观看网站| 三上悠亚ssⅰn939无码播放 | 久久精品九色| 中文字幕中文字幕99 | 国产美女精品视频免费观看| 国产麻豆一区二区三区精品视频| 国模无码视频一区二区三区| 成人av在线资源网站| 国产亚洲精品久久777777| 日韩一级片在线观看| а天堂中文在线官网| 91精品视频网站| 91精品国产乱码久久久久久久 | 久久影院一区二区三区| 中文字幕日韩一区二区三区 | 国产三级精品网站| 日韩av久操| 亚洲天堂2018av| 国产精品久久久久久久久快鸭 | 欧美xx视频| 人禽交欧美网站免费| 日韩一区精品字幕| 日本人亚洲人jjzzjjz| 欧美日韩一级二级三级| 色网站在线看| 亚洲一区中文字幕| 欧美区一区二| 成人午夜精品无码区| 欧美日韩亚洲精品一区二区三区| 欧美精品a∨在线观看不卡| 日韩av成人在线观看| 日本不卡高清| 中文av字幕在线观看| 亚洲综合激情网| 污视频软件在线观看| 国产精品欧美日韩| 91超碰成人| 一级黄色片毛片| 色综合天天狠狠| 91.xxx.高清在线| 51精品国产人成在线观看| 在线日本成人| 成年人免费观看视频网站| 欧美日韩精品高清| 性国产高清在线观看| 久久精品日韩精品| 日本不卡123| 黄页网站免费观看| 亚洲老头老太hd| 九九热这里有精品| 国产又粗又猛又爽又黄的网站| 91免费国产在线| 亚洲午夜精品久久久| 欧美疯狂xxxx大交乱88av| 亚洲另类春色校园小说| 中文字幕第17页| 午夜欧美视频在线观看| av电影在线播放高清免费观看| 7777精品伊久久久大香线蕉语言| 宅男噜噜噜66一区二区| 婷婷国产成人精品视频| 精品国产一区二区三区不卡| 78精品国产综合久久香蕉| 蜜桃视频一区二区在线观看| 久久免费国产精品| 精品久久久免费视频| 国产成人精品综合| 亚洲午夜极品| 日本黄色激情视频| 亚洲精品www|