Advertisement

Menyambungkan Container ke Jaringan yang Berbeda di Docker


“Container yang nggak bisa ngobrol satu sama lain itu seperti dua orang pakai headset Bluetooth tapi beda frekuensi.”

Dalam dunia Docker, jaringan adalah kunci agar container bisa berkomunikasi satu sama lain. Tapi, bagaimana kalau kita punya container yang terpisah di jaringan berbeda, tapi tetap perlu berinteraksi?

Jangan khawatir! Dalam artikel ini, kita akan membahas cara menyambungkan container ke jaringan yang berbeda di Docker dengan gaya santai tapi tetap berbobot.

1. Kenapa Harus Menghubungkan Container ke Jaringan yang Berbeda?

Biasanya, ada beberapa alasan kita perlu menghubungkan container ke beberapa jaringan:

 Memisahkan layanan (misalnya, database di jaringan backend, frontend di jaringan lain).
  Keamanan lebih baik (membatasi siapa yang bisa mengakses siapa).
  Arsitektur kompleks (seperti aplikasi microservices).
  Menghubungkan container ke jaringan lain setelah mereka sudah berjalan (tanpa perlu restart).

Nah, Docker menyediakan fitur ini, jadi kita bisa menghubungkan satu container ke beberapa jaringan sekaligus!

2. Membuat Dua Jaringan Berbeda di Docker

Sebelum menyambungkan container, kita harus punya dua jaringan berbeda.

Misalnya, kita buat jaringan frontend dan backend:

docker network create frontend_network
docker network create backend_network

Cek daftar jaringan yang ada dengan:

docker network ls

Outputnya akan seperti ini:

NETWORK ID          NAME                DRIVER              SCOPE
b6d7ef24f5c8        frontend_network    bridge              local
d8e7fd12a6f2        backend_network     bridge              local

 Sekarang kita punya dua jaringan terpisah yang siap digunakan!

3. Menjalankan Container dalam Jaringan yang Berbeda

Mari kita buat dua container yang terhubung ke jaringan masing-masing.

docker run -d --name web --network frontend_network nginx
docker run -d --name db --network backend_network mysql:8

Saat ini, container web dan db tidak bisa berkomunikasi karena mereka ada di jaringan yang berbeda.

Coba kita cek dari dalam container web:

docker exec -it web ping db

Kamu bakal melihat request timeout, karena container web tidak tahu keberadaan db.

4. Menyambungkan Container ke Dua Jaringan Sekaligus

Sekarang, kita akan menyambungkan container web ke backend_network supaya dia bisa ngobrol dengan db.

docker network connect backend_network web

Sekarang, container web terhubung ke dua jaringan:

  • frontend_network (jaringan aslinya).
  • backend_network (baru saja kita tambahkan).

Coba cek dari dalam container web:

docker exec -it web ping db

 Berhasil! Sekarang web bisa mengakses db meskipun awalnya berada di jaringan berbeda!

5. Melihat Jaringan yang Terhubung ke Container

Untuk melihat jaringan mana saja yang terhubung ke container, gunakan:

docker inspect web | grep "Network"

Outputnya akan menunjukkan bahwa container web sekarang terhubung ke dua jaringan!

6. Melepaskan Container dari Jaringan

Kalau suatu saat kita ingin melepaskan container dari jaringan tertentu, gunakan perintah:

docker network disconnect backend_network web

Sekarang, container web hanya bisa terhubung ke frontend_network lagi.

Coba cek dengan:

docker exec -it web ping db

Boom! Sekarang koneksi gagal lagi karena web tidak terhubung ke backend_network lagi.

7. Kesimpulan: Jaringan Docker Itu Fleksibel!

  Docker memungkinkan container terhubung ke lebih dari satu jaringan.
  Bisa menambahkan container ke jaringan yang berbeda tanpa restart.
  Gunakan docker network connect dan disconnect untuk mengatur jaringan container.

Sekarang, kamu udah ngerti gimana menghubungkan container ke jaringan berbeda di DockerCoba langsung di proyekmu dan lihat bagaimana container bisa berkomunikasi lebih fleksibel!

Post a Comment

0 Comments