EN: Read in English
Dunia D3: Loker & Talian Telefon
Publish, expose, host dan none
Anda akan belajar: port mana yang laptop anda boleh capai, dan mod rangkaian host dan none.
Teks BM belum disemak oleh penutur asli.
Disemak dengan Docker Engine 29 pada 31 Okt 2026
Masalahnya
Laptop anda~
- Tiada tingkap terbuka
Bekas (container)
- webberjalan
Pek beku (image)
- alpine:3.221 layer · 12.9MB
- nginx:1.30-alpine8 layer · 93.5MB · sedang diguna
1 container (1 berjalan), 2 image, 0 loker.
web sedang berjalan. Lajur PORTS tulis 80/tcp. Tapi curl kata Couldn't connect to server. Maksudnya: tiada tingkap dibuka di laptop anda.
Tengok
Buka tingkap dari port laptop 8080 ke port web 80. Biarkan db.
Tekan port laptop, kemudian port container.
Laptop anda
web
db
$ docker run -d --name web nginx:1.30-alpine$ docker run -d --name db postgres:18-alpinePublish port (-p 8080:80) buka port mapping: Tingkap pesanan dari komputer anda ke container. di laptop anda. EXPOSE 80 dalam resepi cuma tulis port itu pada label.
Teka
db tunjuk 5432/tcp, tanpa -p. Siapa boleh capai?
Pilih satu jawapan.
Cuba
Beri web tingkap di 8080. Bekas tak boleh dapat tingkap baru kemudian, jadi buat semula.
Laptop anda~
- Tiada tingkap terbuka
Bekas (container)
- webberjalan
Pek beku (image)
- alpine:3.221 layer · 12.9MB
- nginx:1.30-alpine8 layer · 93.5MB · sedang diguna
1 container (1 berjalan), 2 image, 0 loker.
Petunjuk
Tingkap ditetapkan semasa bekas dibuat. Buang web, kemudian jalankan dengan-p 8080:80.Tengok
Setiap bekas ada jenis talian. Yang asal ialah bridge. host kongsi talian laptop anda sendiri. none tiada talian langsung. Susun mereka.
Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.
Semak
Laptop anda~
- Tiada tingkap terbuka
Bekas (container)
- webberjalan
Pek beku (image)
- alpine:3.221 layer · 12.9MB
- nginx:1.30-alpine8 layer · 93.5MB · sedang diguna
1 container (1 berjalan), 2 image, 0 loker.
Kata-kata sebenar Docker: mod host buang -p. Dengan none, Network unreachable: bekas itu tiada talian keluar.
Anda berjaya!
Kini anda boleh pilih port mana yang laptop anda boleh capai.
Nak tahu lebih (pilihan)
-p 8080:80 dengar di semua kad rangkaian, jadi jiran Wi-Fi mungkin boleh capai. -p 127.0.0.1:8080:80 simpan tingkap untuk laptop anda sahaja. -P buka tingkap rawak untuk setiap port expose. Di Docker Desktop, mod host perlukan versi baru; semak docs.
Latihan sebenar (pilihan):
Misi sebenar
docker run -d --name web -p 127.0.0.1:8080:80 nginx:1.30-alpinedocker port webdocker run --rm --network none alpine:3.22 ping -c 1 8.8.8.8docker rm -f web
0 daripada 4 langkah siap · Tanda anda disimpan.
English
web is up. Its PORTS column says 80/tcp. Yet curl says Couldn't connect to server. Plain words: no hatch is open on your laptop.
To publish a port (-p 8080:80) opens a hatch on your laptop. EXPOSE 80 in a recipe only writes the port on the label.
db shows 5432/tcp, with no -p. Who can reach it?
Give web a hatch on 8080. A box can’t get a new hatch later, so make it again.
-p 8080:80.Each box gets a line type. The default is bridge. host shares your laptop’s own line. none has no line at all. Sort them.
Real words from Docker: host mode discards -p. With none, Network unreachable: the box has no line out.
You can now choose which ports your laptop can reach.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: Docker docs: Port publishing · Docker docs: Host network driver · Docker docs: None network driver
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?