為何要特別介紹Docker的健康檢查,原因是在做 Day21 - 菜鳥們把所學的實作做起來 Docker Compose 篇 的時候,關於depends_on不是想像中,會照著順序起動Service,原因是啟動Service會有時間差的問題,於是用healthcheck來實現我們想要的需求,在介紹Docker Compose 並沒有特別講解healthcheck,於是特別在這一篇做個介紹
Docker healthcheck 提供了以下好處:
Docker指令
docker run --health-cmd="mysqladmin ping -h localhost" --health-interval=15s --health-timeout=5s --health-retries=3 mysql
docker-compose.yaml
services:
mysql-server:
#.....
#mysql-server 相關參數
#.....
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 15s
timeout: 5s
retries: 3
當你查看Container狀態時,會有顯示Container是否健康
如果失敗
如果成功
這邊要特別提到depends_on的基本功能
情境 -> Django Service 啟動前 MySql Service 必須先啟動好
一開始以菜鳥的觀點去介紹簡單的知識給大家,認為healthcheck超過菜鳥的範圍,就不會想去特別介紹,後來透過實作,才發現healthcheck很重要而且應該是基本概念,所以要真正去實作才會知道,所以實作很重要而且會學到更多東西