Peta dunia

 

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

docker ps tunjuk web dengan 80/tcp dalam PORTS. curl localhost:8080 gagal: Couldn't connect to server. Transkrip Docker: $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 36f63acc8211 nginx:1.30-alpine "/docker-entrypoint.…" 3 seconds ago Up 3 seconds 80/tcp web $ curl localhost:8080 curl: (7) Failed to connect to localhost port 8080 after 0 ms: Couldn't connect to server

Laptop anda~

  • Tiada tingkap terbuka

Bekas (container)

  • webberjalan
    dari nginx:1.30-alpine

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-alpine

Publish 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
    dari nginx:1.30-alpine

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.

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

        Mod host cetak: WARNING: Published ports are discarded when using host network mode. Dengan none, ping kata: Network unreachable. Transkrip Docker: $ docker run -d --name hostbox --network host -p 8082:80 alpine:3.22 sleep 300 WARNING: Published ports are discarded when using host network mode 56b39ebfbae84e54a3f5dd2ba3105146341fc725083c071f6dc2b543e2d509fe $ docker run --rm --network none alpine:3.22 ping -c 1 8.8.8.8 PING 8.8.8.8 (8.8.8.8): 56 data bytes ping: sendto: Network unreachable

        Laptop anda~

        • Tiada tingkap terbuka

        Bekas (container)

        • webberjalan
          dari nginx:1.30-alpine

        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

        1. docker run -d --name web -p 127.0.0.1:8080:80 nginx:1.30-alpine
        2. docker port web
        3. docker run --rm --network none alpine:3.22 ping -c 1 8.8.8.8
        4. docker rm -f web

        0 daripada 4 langkah siap · Tanda anda disimpan.