EN: Read in English
Dunia D3: Loker & Talian Telefon
Jangan simpan rahsia dalam image
Anda akan belajar: kenapa kata laluan dalam Dockerfile bocor, dan cara serahkannya semasa run.
Teks BM belum disemak oleh penutur asli.
Disemak dengan Docker Engine 29 pada 31 Okt 2026
Masalahnya
Laptop anda~/shop
- 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.
Resepi tulis ENV DB_PASSWORD=kancil123. Docker pun beri amaran: SecretsUsedInArgOrEnv. Kini setiap bekas daripada image ini tahu kata laluan itu.
Tengok
secret: Maklumat rahsia seperti token; jangan letak dalam kod. (rahsia) ialah kotak rempah berkunci. Jangan kacau ke dalam resepi. Serahkan hanya bila hidangan dihidang. Susun yang ini.
Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.
Teka
Anda push shop:1.0 ke registry awam. Siapa boleh baca kata laluan itu?
Pilih satu jawapan.
Semak
Ini docker history untuk shop:1.0. Tekan baris yang bocor.
0 daripada 1 dijumpai
Setiap baris resepi kekal dalam sejarah image. Sesiapa boleh baca.
Cuba
Mulakan db. Serahkan kata laluan dari db.env, semasa run.
Laptop anda~/shop
- Tiada tingkap terbuka
Bekas (container)
- Belum ada container
Pek beku (image)
- postgres:18-alpine9 layer · 433MB
0 container (0 berjalan), 1 image, 0 loker.
Petunjuk
cat db.env tunjuk kad itu. Kemudian --env-file db.env.Semak
Tabiat selamat, atau bocor?
Leret ke kanan untuk bagus, ke kiri untuk perlu baiki. Atau guna butang.
Masukkan fail .env dalam .gitignore.
Anda berjaya!
Kini anda boleh jauhkan rahsia dari image anda.
Nak tahu lebih (pilihan)
Env var semasa run masih nampak dalam docker inspect. Secret Compose sampai sebagai fail dalam /run/secrets.
Di mana cerita ini tak tepat: loker sebenarnya tak di luar. Volume ada di cakera yang sama, atau dalam VM Docker Desktop. Cakera rosak, loker pun hilang. Talian telefon cuma perisian. Env var pun bukan kotak berkunci.
Misi sebenar
docker history --no-trunc <your-image>git check-ignore .env
0 daripada 3 langkah siap · Tanda anda disimpan.
English
The recipe says ENV DB_PASSWORD=kancil123. Docker even warns: SecretsUsedInArgOrEnv. Now every box from this image knows the password.
A secret is the locked spice box. Never stir it into the recipe. Hand it over only when the dish is served. Sort these.
You push shop:1.0 to a public registry. Who can read the password?
Every recipe line stays in the image’s history. Anyone can read it.
Start db. Hand it the password from db.env, at run time.
cat db.env shows the card. Then --env-file db.env.Safe habit, or a leak?
You can now keep secrets out of your images.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: Docker docs: SecretsUsedInArgOrEnv · Docker docs: Build secrets · Docker docs: Secrets in Compose
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?