Peta dunia

 

EN: Read in English

Dunia D2: Resepi

HEALTHCHECK: masih hidup?

Anda akan belajar: biar Docker semak aplikasi masih menjawab, bukan sekadar berjalan.

Teks BM belum disemak oleh penutur asli.

Disemak dengan Docker Engine 29 pada 31 Okt 2026

Masalahnya

docker ps kata bekas anda Up. Tapi setiap laman tunjuk ralat. Adakah ia sihat?

Pilih satu jawapan.

Tengok

Resepi broken semak /health setiap 5 saat, laman yang tak wujud. Selepas 20 saat, docker ps tunjuk web sebagai Up (unhealthy). Transkrip Docker: $ cat broken/Dockerfile FROM nginx:1.30-alpine COPY index.html /usr/share/nginx/html/ HEALTHCHECK --interval=5s --timeout=3s \ CMD curl -fs http://localhost/health || exit 1 $ docker build -t diary:broken broken [+] Building 0.1s (7/7) FINISHED docker:default => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 189B 0.0s => [internal] load metadata for docker.io/library/nginx:1.30-alpine 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [1/2] FROM docker.io/library/nginx:1.30-alpine@sha256:0e52bd054126cdc0 0.0s => => resolve docker.io/library/nginx:1.30-alpine@sha256:0e52bd054126cdc0 0.0s => [internal] load build context 0.0s => => transferring context: 232B 0.0s => [2/2] COPY index.html /usr/share/nginx/html/ 0.0s => exporting to image 0.1s => => exporting layers 0.0s => => exporting manifest sha256:ebb36d6cd5640cbf03395a313040768dbb51a7aff 0.0s => => exporting config sha256:bbe5baeedf01d763862cfb832c17f0d5b47aec4f6b7 0.0s => => exporting attestation manifest sha256:1b63be82f7c2cf434f5bc40c06a58 0.0s => => exporting manifest list sha256:da97c645dd67971a5aa4403eb00b1a1e8c04 0.0s => => naming to docker.io/library/diary:broken 0.0s => => unpacking to docker.io/library/diary:broken 0.0s $ docker run -d --name web diary:broken a38f59ca5adda6bba9144b3c77a385d92916137599ce5190200680fc2b636181 $ sleep 20 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a38f59ca5add diary:broken "/docker-entrypoint.…" 26 seconds ago Up 26 seconds (unhealthy) 80/tcp web

Laptop anda~/diary

  • Tiada tingkap terbuka

Bekas (container)

  • Belum ada container

Pek beku (image)

  • nginx:1.30-alpine8 layer · 93.5MB

0 container (0 berjalan), 1 image, 0 loker.

HEALTHCHECK: Ujian kecil yang Docker jalankan berulang kali: aplikasi masih menjawab? mengetuk setiap 5 saat. Di sini ia minta /health, yang tak wujud. Selepas 3 kali gagal berturut-turut, statusnya jadi unhealthy.

Cuba

Bina baris health check yang ketuk laman utama setiap 10 saat.

Ketik kepingan ikut turutan yang betul.

…

Cuba

Resepi ini semak laman utama. Bina, jalankan sebagai web, tunggu sekejap, kemudian tengok.

Laptop anda~/diary

  • Tiada tingkap terbuka

Bekas (container)

  • Belum ada container

Pek beku (image)

  • nginx:1.30-alpine8 layer · 93.5MB

0 container (0 berjalan), 1 image, 0 loker.

Teka

web jadi unhealthy. Apa yang Docker biasa buat?

Pilih satu jawapan.

Anda berjaya!

Kini anda boleh tambah HEALTHCHECK dan baca status kesihatan.

Nak tahu lebih (pilihan)

Nilai asal: setiap 30s, had masa 30s, 3 kali cuba. --start-period beri masa untuk aplikasi yang lambat bangun. Compose boleh tunggu service_healthy (Dunia D4). Kubernetes abaikan HEALTHCHECK dan guna probe sendiri (Bahagian 3). Semak / atau laman kecil /health, jangan yang lambat.

Misi sebenar

  1. docker ps

0 daripada 3 langkah siap · Tanda anda disimpan.