Skip to content

Docker Network

  • Saat kita membuat container di docker, secara default container akan saling terisolasi satu sama lain, jadi jika kita mencoba memanggil antar container, bisa dipastikan bahwa kita tidak akan bisa melakukannya
  • Docker memiliki fitur Network yang bisa digunakan untuk membuat jaringan di dalam Docker
  • Dengan menggunakan Network, kita bisa mengkoneksikan container dengan container lain dalam satu Network yang sama
  • Jika beberapa container terdapat pada satu Network yang sama, maka secara otomatis container tersebut bisa saling berkomunikasi

Network Driver

  • Saat kita membuat Network di Docker, kita perlu menentukan driver yang ingin kita gunakan, ada banyak driver yang bisa kita gunakan, tapi kadang ada syarat sebuah driver network bisa kita gunakan.
  • bridge, yaitu driver yang digunakan untuk membuat network secara virtual yang memungkinkan container yang terkoneksi di bridge network yang sama saling berkomunikasi
  • host, yaitu driver yang digunakan untuk membuat network yang sama dengan sistem host. host hanya jalan di Docker Linux, tidak bisa digunakan di Mac atau Windows
  • none, yaitu driver untuk membuat network yang tidak bisa berkomunikasi

Melihat Network

docker network ls

Membuat network

docker network --driver namadriver namanetwork
docker network --driver bridge webserver

Menghapus Network

docker network rm namanetwork
docker network rm webserver

Warning

Network tidak bisa dihapus jika sudah digunakan oleh container. Kita harus menghapus container nya terlebih dahulu dari Network, atau disconnect dari container tersebut

Container Network

  • Setelah kita membuat Network, kita bisa menambahkan container ke network
  • Container yang terdapat di dalam network yang sama bisa saling berkomunikasi (tergantung jenis driver network nya)
  • Container bisa mengakses container lain dengan menyebutkan hostname dari container nya, yaitu nama container nya

Create Container With Network

docker network create --driver bridge nginxnetwork
docker run -d --name nginx1 --network nginxnetwork
docker run -it --name nginx2 --network nginxnetwork
ping nginx1
exit

Disconnect from container

docker network disconnect nginxnetwork nginx2

Connect to container

``` docker network connect nginxnetwork nginx1