Tutorial Docker — #8 Docker Networks: Connecting Containers

Seri Belajar Docker dalam Bahasa Indonesia

Ghifari Nur
netSHOOT
4 min readFeb 25, 2021

--

Halo, bagi kalian yang belum paham mengenai Docker bisa membaca artikel sebelumnya:

Overview

Pada materi sebelumnya, kita sudah mencoba berbagai macam konfigurasi untuk satu container. Contohnya static landing page (Welcome to Nginx).

Tapi, bagaimana jika menerapkan container terhadap dynamic page/website dan mobile app?

Pastinya membutuhkan banyak container yang didalamnya pun banyak images supaya saling berkomunikasi.

Container akan berkomunikasi menggunakan network drivers yang disebut sebagai Docker Network Drivers.

Apa Saja yang dimiliki oleh Docker Network Drivers?

  • Sebuah software yang mengizinkan container saling berkomunikasi
  • Bisa digunakan oleh satu host atau mulit-host
  • Native network drivers berada di Docker Engine
  • Remote network drivers akan disediakan dan dibuat oleh pihak ketiga (third-party vendors/community)
  • IPAM (IP Address Management) bisa menggunakan default subnets

Container Networking Model

Host Network Infrastructure

Lingkungan ini merupakan tempatnya network device (ethernet, WiFi) dan OS kernel (yang sedang kita gunakan adalah Linux Ubuntu)

Network & IPAM Drivers

Docker networking drivers

Docker Engine

Untuk membuat setiap objek untuk Docker

Container Network

Container berjalan diatas stack infrastructure, network & IPAM, dan Docker Engine.

Tanda panah menunjukkan virtual ethernet yang terdapat IP address, MAC address, dan ports.

Native & Remote Drivers

Dari sub-bab sebelumnya, kita bisa menyingkat diagramnya menjadi seperti dibawah ini

Lalu, bagaimana diagram yang tepat untuk menggambarkan Docker Network?

Host Network

Container akan memiliki IP Address yang sama dengan interface nya host. Pada kasus ini, host menggunakan interface ethernet0 dengan IP 192.168.0.1 maka container yang menggunakan host network akan memiliki IP 192.168.0.1 (sama dengan milik host)

Kalo ada kasus yang menggunakan lebih dari satu container dengan IP Address yang sama, maka container tersebut akan membentuk virtual ethernet supaya bisa komunikasi.

Bridge Network

Bridge adalah cara default yang digunakan oleh Docker Network. Setiap container akan memiliki IP Address dan terhubung dengan virtual ethernet serta berkomunikasi menggunakan virtual bridge.

Bridge pun dapat menyembunyikan DNS atau IP dari host.

Overlay Network

Overlay

Biasa digunakan untuk single host docker infrastructure. Pada Docker community dan enterprise, kalian akan menemukan clusters dari Docker host yang akan running, connected, selaras dengan container.

Cara ini bisa disebut “swarm mode”. Swarm akan bergantung pada penyediaan overlay network.

Underlay

Melihat seluruh data source & destination untuk hosts IP Address

Membuat Docker Networks

  • Membuat bridge network dengan settingan default

Catatan:

--driver bridge (flag, bridge bisa diubah sesuai kebutuhan Docker native network)

  • Membuat bridge network dengan settingan custom

Catatan:

--subnet (network mask)

--ip-range (IP yang tersedia untuk host)

  • Cek setiap network drivers
  • Kalo kalian ingin memfilter pencarian Docker network, gunakan cara dibawah

Implementasi Docker Networks

Connect

  • Aktifkan container yang ingin kita koneksikan
img_expose (cont_expose)
busybox:latest (busybox1)
  • Masukkan bridge-2-cst ke cont_expose

Inspect

  • Gunakan inspect command untuk melihat informasi container, IP untuk cont_expose adalah 192.168.10.1
cont_expose
  • Gunakan inspect command untuk melihat informasi network, bridge-2-cst berada di cont_expose
bridge-2-cst
  • Coba buka browser dan masukkan IP Address container yang ada di inspect (mungkin punya kalian dan punya gua berbeda)

Disconnect

  • Putus komunikasi pada container
  • Cek menggunakan inspect

Have a nice day!

Ghifari Nur Athoillah, Mahasiswa di Program Profesi CCIT-Fakultas Teknik Universitas Indonesia

--

--