Cara Manage Network di Docker

Cara Manage Network di Docker

Secara default container menggunakan network driver tipe bridge dengan nama bridge. Network driver lain yang tersedia yaitu host, overlay, dan macvlan.

Network driver

  • bridge: menghubungkan container yang memakai nama bridge yang sama
  • host: menghapus network isolation antara container dan Docker host, secara langsung menggunakan network milik host
  • overlay: menghubungkan beberapa Docker daemon bersama-sama dan memungkinkan swarm service berkomunikasi satu sama lain
  • macvlan: memungkinkan menetapkan MAC address ke container, membuatnya muncul sebagai perangkat fisik di network
  • none: menonaktifkan semua network. Biasanya digunakan bersama dengan custom network driver
  • Network plugins: menginstall dan menggunakan third-party network plugin yang tersedia di Docker Hub atau dari third-party vendor

Bridge network

Menampilkan network yang tersedia di Docker.

Contoh hasil perintah di atas, menampilkan network default, belum ada network yang ditambahkan sendiri.

Default bridge network

Membuat dua container dengan nama container node1 dan node2, image nginx:stable-alpine, dan tanpa mendefinisikan opsi network.

Menampilkan informasi detail container.

Informasi network dari container terdapat pada bagian Networks. Container menggunakan network driver bridge. 12 karakter pertama (1652fc7934a6) NetworkID sama dengan NETWORK ID yang ditampilkan sebelumnya pada hasil perintah docker network ls dengan NAME dan DRIVER bridge.

IP address 172.17.0.2 dan Gateway 172.17.0.1. Gateway menggunakan network interface dan IP dari Docker0 di host.

Menampilkan informasi network dengan nama bridge.

Container yang menggunakan bridge network dapat dilihat informasinya pada bagian Containers. Terdapat dua container yaitu node1 dengan IP address 172.17.0.2 dan node2 dengan IP address 172.17.0.3.

Uji ping dari container node1 ke node2.

Hasil perintah di atas.

CTRL+C untuk menghentikan ping.

Membuat Bridge Network

Container yang menggunakan default bridge network tidak dapat secara otomatis berkomunikasi menggunakan hostname dari container, hanya dapat menggunakan IP address. Misalnya tidak bisa ping node2 hanya bisa ping 172.17.0.3.

Untuk dapat berkomunikasi dengan menggunakan hostname, definisikan IP-host di file /etc/hosts container secara manual. Cara lainnya, container menggunakan bridge network yang dibuat sendiri (user-defined bridge).

Membuat bridge network dengan nama net-web.

Menampilkan network.

Membuat Container dengan opsi network
Pada saat membuat container dapat sekaligus menghubungkannya ke network.

Membuat container dan menghubungkannya ke network dengan nama net-web.

Uji ping dari container node1 ke node2.

Menghubungkan container yang sudah ada
Container yang sudah ada sebelumnya dapat dihubungkan ke network.

Menghubungkan container node1 dan node2 ke network net-web.

Melepaskan container node1 dari network net-web.

Perintah docker network

Menampilkan semua network.

Membuat network.

Menghubungkan container ke network.

Melepaskan container dari network.

Menampilkan informasi detail network.

Menghapus network.

Menghapus semua network yang tidak terpakai.

Selamat mencoba 🙂

Leave a Reply