EN: Read in English
Dunia D1: Container Pertama
Tetapan dengan -e
Anda akan belajar: beri container tetapannya dengan -e, dan baca apa yang ia minta.
Teks BM belum disemak oleh penutur asli.
Disemak dengan Docker Engine 29 pada 31 Okt 2026
Masalahnya
Laptop anda~
- Tiada tingkap terbuka
Bekas (container)
- Belum ada container
Pek beku (image)
- alpine:3.221 layer · 12.9MB
- postgres:18-alpine9 layer · 433MB
0 container (0 berjalan), 2 image, 0 loker.
Anda mulakan bekas pangkalan data, db. Sesaat kemudian ia kata Exited (1). Ada sesuatu yang tertinggal. Tapi apa?
Cuba
Tanya db kenapa. Baca lognya.
Laptop anda~
- Tiada tingkap terbuka
Bekas (container)
- dbgagal (keluar 1)
Pek beku (image)
- alpine:3.221 layer · 12.9MB
- postgres:18-alpine9 layer · 433MB · sedang diguna
Loker (volume)
- 618a61fe96bb… (tanpa nama)0 fail · diguna oleh db
1 container (0 berjalan), 2 image, 1 loker.
Petunjuk
Taipdocker logs db.Tengok
Laptop anda~
- Tiada tingkap terbuka
Bekas (container)
- Belum ada container
Pek beku (image)
- alpine:3.221 layer · 12.9MB
- nginx:1.30-alpine8 layer · 93.5MB
0 container (0 berjalan), 2 image, 0 loker.
-e lekatkan nota pada penutup bekas. Nota itu ialah environment variable (pemboleh ubah persekitaran): NAME=Aina tetapkan NAME kepada Aina. Aplikasi di dalam membacanya.
Cuba
Bina arahan yang beri db kata laluannya.
Ketik kepingan ikut turutan yang betul.
Cuba
Baiki db. Buang bekas yang rosak. Kemudian mulakan yang baru dengan kata laluan.
Laptop anda~
- Tiada tingkap terbuka
Bekas (container)
- dbgagal (keluar 1)
Pek beku (image)
- alpine:3.221 layer · 12.9MB
- postgres:18-alpine9 layer · 433MB · sedang diguna
Loker (volume)
- 618a61fe96bb… (tanpa nama)0 fail · diguna oleh db
1 container (0 berjalan), 2 image, 1 loker.
Teka
Anda beri db -e POSTGRES_PASSWORD=secret. Adakah pek beku postgres berubah?
Pilih satu jawapan.
Semak
Adakah Postgres jumpa kata laluannya? Leret setiap satu.
Leret ke kanan untuk bagus, ke kiri untuk perlu baiki. Atau guna butang.
-e POSTGRES_PASSWORD=secretAnda berjaya!
Kini anda boleh beri container tetapannya dengan -e.
Nak tahu lebih (pilihan)
docker inspect -f '{{.Config.Env}}' db senaraikan setiap nota pada bekas. Sesiapa yang boleh guna Docker boleh membacanya. Jadi jangan letak kata laluan sebenar dalam -e pada mesin yang dikongsi. Dunia D3 tunjuk cara lebih selamat. -e NAME tanpa nilai salin NAME dari laptop anda.
Latihan sebenar (pilihan):
Misi sebenar
docker run --rm -e NAME=anda alpine:3.22 printenv NAMEdocker run -d --name db -e POSTGRES_PASSWORD=secret postgres:18-alpinedocker logs dbdocker rm -f db
0 daripada 4 langkah siap · Tanda anda disimpan.
English
You start a database box, db. A second later it says Exited (1). Something is missing. But what?
Ask db why. Read its logs.
docker logs db.-e sticks a note on the lunchbox lid. The note is an environment variable: NAME=Aina sets NAME to Aina. The app inside reads it.
Build the command that gives db its password.
Fix db. Remove the broken box. Then start a new one with a password.
You gave db -e POSTGRES_PASSWORD=secret. Does the postgres meal pack change?
Will Postgres find its password? Swipe each one.
You can now hand a container its settings with -e.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: docker run: set environment variables · Overriding container defaults
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?