GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Menjelaskan Konsep Jaringan Docker

Jaringan buruh pelabuhan pada dasarnya digunakan untuk membangun komunikasi antara wadah buruh pelabuhan dan dunia luar melalui mesin host atau Anda dapat mengatakan itu adalah jalur komunikasi di mana semua wadah yang terisolasi berkomunikasi satu sama lain dalam berbagai situasi untuk melakukan tindakan yang diperlukan. Dalam panduan ini, kami akan menjelaskan konsep dasar jaringan Docker dengan contoh praktis di Ubuntu.

Jika Anda belum menginstal Docker, lihat panduan berikut.

  • Cara Menginstal Docker di Server Ubuntu 18.04 LTS

Dasar-dasar penggunaan Docker:

  • Memulai Docker

Menjelaskan Konsep Jaringan Docker

Semua perintah yang tercantum di bawah ini diuji dengan root hak istimewa di Ubuntu .

Untuk mengelola operasi jaringan, seperti membuat jaringan baru, menghubungkan wadah ke jaringan, memutuskan sambungan wadah dari jaringan, membuat daftar jaringan yang tersedia dan menghapus jaringan, dll., kami menggunakan perintah berikut:

# docker network

Jenis driver jaringan buruh pelabuhan

Untuk membuat daftar semua jaringan Anda, jalankan:

# docker network ls

Mari kita mengenal semuanya secara singkat.

  1. Jaringan jembatan : Saat Anda memulai Docker, jaringan jembatan default dibuat secara otomatis. Wadah yang baru dimulai akan terhubung secara otomatis ke sana. Anda juga dapat membuat jaringan jembatan kustom yang ditentukan pengguna. Jaringan jembatan yang ditentukan pengguna lebih unggul daripada jaringan jembatan default.
  2. Jaringan induk : Ini menghapus isolasi jaringan antara wadah dan host Docker, dan menggunakan jaringan host secara langsung. Jika Anda menjalankan wadah yang mengikat ke port 80 dan Anda menggunakan jaringan host, aplikasi wadah tersedia di port 80 di alamat IP host. Berarti Anda tidak akan dapat menjalankan beberapa kontainer web pada host yang sama, pada port yang sama seperti port yang sekarang umum untuk semua kontainer di jaringan host.
  3. Tidak ada jaringan : Dalam jaringan semacam ini, wadah tidak terhubung ke jaringan apa pun dan tidak memiliki akses ke jaringan eksternal atau wadah lain. Jadi, jaringan ini digunakan saat Anda ingin menonaktifkan tumpukan jaringan pada sebuah wadah.
  4. Jaringan hamparan : Membuat jaringan pribadi internal yang menjangkau semua node yang berpartisipasi dalam swarm cluster. Jadi, jaringan Overlay memfasilitasi komunikasi antara layanan kawanan buruh pelabuhan dan wadah mandiri, atau antara dua wadah mandiri pada Daemon Docker yang berbeda.
  5. Jaringan Macvlan : Beberapa aplikasi, terutama aplikasi lawas atau aplikasi yang memantau lalu lintas jaringan, diharapkan dapat terhubung langsung ke jaringan fisik. Dalam situasi seperti ini, Anda dapat menggunakan driver jaringan Macvlan untuk menetapkan alamat MAC ke antarmuka jaringan virtual setiap wadah, membuatnya tampak seperti antarmuka jaringan fisik yang terhubung langsung ke jaringan fisik.

Izinkan saya untuk menunjukkan kepada Anda latihan langsung ke jaringan Bridge dan Host.

1. Jaringan Jembatan

Saya akan menggunakan dua kontainer Alpine untuk menjelaskan jenis jaringan ini.

Sekarang, saya akan menjalankan dua kontainer Alpine yaitu C1 dan C2 menggunakan perintah:

# docker run -it -d --name c1 alpine ash
# docker run -it -d --name c2 alpine ash

Selanjutnya, mari kita cari tahu alamat IP dari container yang sedang berjalan tersebut. Untuk melakukannya, jalankan:

# docker exec -it c1 sh –c “ip a”
# docker exec -it c2 sh –c “ip a”

Seperti yang Anda lihat, alamat IP wadah C1 adalah 172.17.0.2 dan alamat IP C2 adalah 172.17.0.3 .

Sekarang mari kita lanjutkan dan coba ping satu sama lain untuk memastikan apakah mereka dapat berkomunikasi.

Pertama, lampirkan ke wadah C1 yang sedang berjalan dan coba ping ke wadah C2:

# docker attach c1
# Ping –c 2 172.17.0.3

Demikian pula, lampirkan ke wadah C2 dan coba ping wadah C1.

# docker attach c2
# Ping –c 2 172.17.0.2

Seperti yang Anda lihat pada tangkapan layar di atas, komunikasi terjadi antara wadah dengan di jaringan yang sama.

Kami juga dapat memverifikasinya dengan memeriksa jaringan jembatan menggunakan perintah:

# docker network inspect bridge

Perintah di atas akan menampilkan semua informasi tentang jaringan, seperti jenis jaringan, subnet, gateway, nama container dan alamat iip dll.

1.1 Membuat jaringan jembatan yang ditentukan pengguna

Seperti yang sudah saya katakan, ketika Anda memulai Docker, jaringan jembatan default dibuat secara otomatis . Semua wadah yang baru dimulai akan terhubung secara otomatis ke sana. Namun, Anda juga dapat membuat jaringan jembatan khusus yang ditentukan pengguna.

Untuk membuat driver jaringan baru, cukup jalankan:

# docker network create my_net

Atau,

# docker network create --driver bridge dhruv_net

Kedua perintah akan melakukan pekerjaan yang sama. Jika Anda tidak menentukan nama driver, itu akan dibuat di driver jaringan default yaitu jembatan .

Pada jaringan yang ditentukan pengguna seperti dhruv_net, wadah tidak hanya dapat berkomunikasi dengan alamat IP, tetapi juga dapat menyelesaikan nama wadah ke alamat IP. Kemampuan ini disebut penemuan layanan otomatis .

Untuk memastikan jika kontainer dapat berkomunikasi satu sama lain, mari kita jalankan tiga kontainer alpine yaitu A1 , A2 dan A3 di dhruv_net jaringan yang kita buat sebelumnya.

# docker run -it -d --name A1 --network dhruv_net alpine ash
# docker run -it -d --name A2 --network dhruv_net alpine ash
# docker run -it -d --name A3 --network dhruv_net alpine ash

Sekarang coba lampirkan ke salah satu wadah dan ping dua wadah lainnya menggunakan nama wadah.

Dari screenshot di atas, terbukti bahwa container dapat saling berkomunikasi.

2. Jaringan Host

Kami menjalankan container yang mengikat port 80 menggunakan jaringan host, aplikasi container tersedia di port 80 pada alamat IP host.

Jaringan host hanya diperlukan ketika Anda menjalankan program dengan jaringan yang sangat spesifik. Aplikasi yang berjalan di dalam wadah Docker terlihat seperti berjalan di host itu sendiri, dari perspektif jaringan. Hal ini memungkinkan container mendapatkan akses jaringan yang lebih besar dari biasanya.

Di sini, kami menggunakan netstat -ntlp perintah untuk menampilkan port mendengarkan di server. Untuk menemukan layanan mana yang mendengarkan pada port tertentu, panduan ini .

Kami hanya membahas dasar-dasar konsep jaringan Docker. Untuk detail lebih lanjut, saya sarankan Anda untuk melihat panduan jaringan Docker yang terlampir di bawah ini.

  • Jaringan Kontainer Docker

Bacaan yang disarankan:

  • Menjelaskan volume Docker
  • Cara Memperbarui Wadah Docker yang Berjalan Secara Otomatis
  • ctop – Alat Pemantau Baris Perintah Untuk Wadah Linux
  • Portainer – Cara Termudah Mengelola Docker
  • PiCluster – Aplikasi Manajemen Docker Berbasis Web Sederhana
  • Dockly – Kelola Kontainer Docker Dari Terminal

Tentang Penulis:

Dhruv Tiwari adalah Insinyur DevOps yang suka mengotomatisasi berbagai hal, bekerja dengan Linux dalam skala besar dan memimpikan hari ketika sistem cukup pintar untuk tidak perlu masuk ke kotak Linux. Perjalanan CI/CD dari kode sumber ke penerapan kode hingga produksi.


Docker
  1. Mengalami Masalah Nyata Dengan Jaringan Systemctl?

  2. Buruh pelabuhan

  3. Menginstal Docker (Ubuntu)

  1. Dapatkan lembar contekan jaringan Linux kami

  2. Pengantar Docker

  3. Tidak ada konektivitas jaringan ke/dari wadah Docker CE di CentOS 8

  1. Cara Memulai Ulang Jaringan di Ubuntu

  2. Bagaimana Cara Membersihkan Docker Jaringan Di Ubuntu Gnome 15.10?

  3. Pengantar Docker