Peta dunia

 

EN: Read in English

Dunia D3: Loker & Talian Telefon

Talian telefon: rangkaian sendiri

Anda akan belajar: letak container dalam rangkaian sendiri, supaya mereka boleh berhubung.

Teks BM belum disemak oleh penutur asli.

Disemak dengan Docker Engine 29 pada 31 Okt 2026

Masalahnya

web dan db kedua-duanya berjalan. web ping db ikut nama dan dapat: ping: bad address 'db'. Transkrip Docker: $ docker exec web ping -c 1 db ping: bad address 'db'

Laptop anda~

  • Tiada tingkap terbuka

Bekas (container)

  • webberjalan
    dari nginx:1.30-alpine
  • dbberjalan
    dari postgres:18-alpine tanpa nama → /var/lib/postgresql

Pek beku (image)

  • alpine:3.221 layer · 12.9MB
  • nginx:1.30-alpine8 layer · 93.5MB · sedang diguna
  • postgres:18-alpine9 layer · 433MB · sedang diguna

Loker (volume)

  • 19c922aa7052… (tanpa nama)24 fail · diguna oleh db

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

web perlu hubungi db. Kedua-duanya berjalan di laptop anda. Tapi: ping: bad address 'db'. Maksudnya: web tiada buku telefon yang ada nama db.

Tengok

Tekan talian telefon yang anda buat.

0 daripada 1 dijumpai

network (rangkaian sendiri) (network (your own)): Talian telefon yang anda buat dengan docker network create. Container di atasnya boleh panggil satu sama lain ikut nama. (rangkaian) ialah talian telefon antara bekas. docker network create shopnet buat talian anda sendiri. Tiga lagi itu Docker yang buat.

Cuba

Buat talian shopnet. Sambungkan web dan db kepadanya.

Laptop anda~

  • Tiada tingkap terbuka

Bekas (container)

  • webberjalan
    dari nginx:1.30-alpine
  • dbberjalan
    dari postgres:18-alpine tanpa nama → /var/lib/postgresql

Pek beku (image)

  • alpine:3.221 layer · 12.9MB
  • nginx:1.30-alpine8 layer · 93.5MB · sedang diguna
  • postgres:18-alpine9 layer · 433MB · sedang diguna

Loker (volume)

  • 19c922aa7052… (tanpa nama)24 fail · diguna oleh db

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

Teka

cache dimulakan dengan docker run biasa, tanpa --network. Boleh ia hubungi menu, yang ada di shopnet?

Pilih satu jawapan.

Tengok

cache tak jumpa menu. Selepas docker network connect shopnet cache, tajuk halaman menu sampai. Transkrip Docker: $ docker exec cache wget -qO- http://menu wget: bad address 'menu' $ docker network connect shopnet cache $ docker exec cache sh -c "wget -qO- http://menu | grep title" <title>Welcome to nginx!</title>

Laptop anda~

  • Tiada tingkap terbuka

Bekas (container)

  • menuberjalan
    dari nginx:1.30-alpine shopnet
  • cacheberjalan
    dari alpine:3.22

Pek beku (image)

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

Talian telefon (rangkaian)

  • shopnetmenu

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

docker network connect sambungkan bekas yang sedang berjalan ke satu talian. Tak perlu restart. Kini cache boleh hubungi menu.

Semak

db ada di shopnet. Bekas mana boleh panggil db ikut nama?

Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.

      Anda berjaya!

      Kini anda boleh beri container anda talian telefon sendiri.

      Nak tahu lebih (pilihan)

      Bridge asal tiada nama, dan semua bekas masuk ke situ. Rangkaian sendiri ada nama, dan hanya bekas yang dijemput. docker network inspect shopnet senaraikan siapa yang bersambung. docker network disconnect putuskan satu bekas.

      Latihan sebenar (pilihan):

      Misi sebenar

      1. docker network create practice-net
      2. docker run -d --name menu --network practice-net nginx:1.30-alpine
      3. docker run --rm --network practice-net alpine:3.22 wget -qO- http://menu
      4. docker rm -f menu && docker network rm practice-net

      0 daripada 4 langkah siap · Tanda anda disimpan.