Peta dunia

 

EN: Read in English

Dunia D1: Container Pertama

Ikut log

Anda akan belajar: baca apa yang container paparkan, dan tengok baris baru secara langsung.

Teks BM belum disemak oleh penutur asli.

Disemak dengan Docker Engine 29 pada 31 Okt 2026

Masalahnya

docker ps -a senaraikan dua bekas. web Up. timer tunjuk Exited (127). Transkrip Docker: $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d087a93072c4 alpine:3.22 "sh -c 'echo Timer o…" 6 seconds ago Exited (127) 6 seconds ago timer 09d2de506559 nginx:1.30-alpine "/docker-entrypoint.…" 9 seconds ago Up 9 seconds 0.0.0.0:8080->80/tcp web

Laptop anda~

  • Port laptop 8080 → web port 80

Bekas (container)

  • webberjalan
    dari nginx:1.30-alpine 8080→80
  • timergagal (keluar 127)
    dari alpine:3.22

Pek beku (image)

  • alpine:3.221 layer · 12.9MB · sedang diguna
  • nginx:1.30-alpine8 layer · 93.5MB · sedang diguna

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

Bekas timer anda patut berdetik selama sejam. Ia terus berhenti: Exited (127). Tiada ralat di skrin anda. Macam mana nak tahu sebabnya?

Cuba

Bekas simpan catatan semua yang ia paparkan: log (logs): Semua yang container paparkan semasa bekerja. Baca dengan docker logs. dia. Baca catatan timer.

Laptop anda~

  • Port laptop 8080 → web port 80

Bekas (container)

  • webberjalan
    dari nginx:1.30-alpine 8080→80
  • timergagal (keluar 127)
    dari alpine:3.22

Pek beku (image)

  • alpine:3.221 layer · 12.9MB · sedang diguna
  • nginx:1.30-alpine8 layer · 93.5MB · sedang diguna

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

Semak

Log itu berakhir dengan ralat sebenar sh: sleeep: not found. Apa maksudnya?

Pilih satu jawapan.

Tengok

curl lawat web. Kemudian docker logs --tail 1 web tunjuk satu baris baru: permintaan GET dengan status 200. Transkrip Docker: $ curl -s localhost:8080 | grep title <title>Welcome to nginx!</title> $ docker logs --tail 1 web 172.17.0.1 - - [31/Oct/2026:01:00:12 +0000] "GET / HTTP/1.1" 200 896 "-" "curl/8.5.0" "-"

Laptop anda~

  • Port laptop 8080 → web port 80

Bekas (container)

  • webberjalan
    dari nginx:1.30-alpine 8080→80
  • timergagal (keluar 127)
    dari alpine:3.22

Pek beku (image)

  • alpine:3.221 layer · 12.9MB · sedang diguna
  • nginx:1.30-alpine8 layer · 93.5MB · sedang diguna

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

Setiap lawatan ke web tambah satu baris. --tail 1 tunjuk yang terakhir sahaja. Tambah -f (follow) untuk tengok baris baru secara langsung. Ctrl+C berhenti menengok.

Cuba

Lawat web dengan curl localhost:8080. Kemudian baca log web dan cari lawatan anda.

Laptop anda~

  • Port laptop 8080 → web port 80

Bekas (container)

  • webberjalan
    dari nginx:1.30-alpine 8080→80
  • timergagal (keluar 127)
    dari alpine:3.22

Pek beku (image)

  • alpine:3.221 layer · 12.9MB · sedang diguna
  • nginx:1.30-alpine8 layer · 93.5MB · sedang diguna

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

Teka

docker logs -f web sedang berjalan. Anda tekan Ctrl+C. Apa jadi pada web?

Pilih satu jawapan.

Anda berjaya!

Kini anda boleh baca log container untuk cari punca masalah.

Nak tahu lebih (pilihan)

Log ialah apa yang aplikasi paparkan ke skrin (stdout dan stderr). Image nginx hantar fail lognya ke situ juga. Pilihan berguna: --tail 20, --since 10m, dan -t untuk masa. Log hilang bila anda buang bekas.

Latihan sebenar (pilihan):

Misi sebenar

  1. docker run -d --name web -p 8080:80 nginx:1.30-alpine
  2. docker logs -f web
  3. docker rm -f web

0 daripada 4 langkah siap · Tanda anda disimpan.