Advertisement

Memahami Konsep Networking di Docker – Jaringan Tanpa Ribet!

 File:Docker (container engine) logo.svg

 

“Pernah nggak sih ngerasa kayak hacker pas ngatur jaringan, padahal cuma ngelola container di Docker?” – Developer yang baru kenal Docker Networking.

Saat pertama kali menggunakan Docker, mungkin kamu berpikir, "Oke, aku paham soal container. Tapi... gimana cara mereka berkomunikasi satu sama lain?"

Nah, jawabannya adalah Docker Networking! Dengan sistem jaringan ini, container bisa berbicara, bertukar data, dan terhubung dengan dunia luar.

Di artikel ini, kita bakal bahas konsep dasar Docker Networking, jenis-jenisnya, serta cara menggunakannya dengan gaya yang santai dan mudah dipahami.

1. Apa Itu Docker Networking?

Secara sederhana, Docker Networking adalah sistem yang memungkinkan container berkomunikasi satu sama lain dan juga dengan dunia luar (misalnya, internet atau host machine).

Tanpa networking, container kamu seperti anak kos yang nggak punya WiFi – dia hidup, tapi nggak bisa ngapa-ngapain.

Docker menyediakan beberapa opsi jaringan yang bisa digunakan tergantung kebutuhan aplikasi kamu.

2. Jenis-Jenis Docker Network

Docker punya beberapa jenis jaringan yang bisa kamu gunakan:

Jenis Jaringan Fungsi Utama Kapan Digunakan?
Bridge Jaringan default yang digunakan oleh container standalone Untuk komunikasi antar container dalam satu host
Host Container menggunakan jaringan host tanpa isolasi Untuk performa tinggi, tanpa perlu NAT
None Container tidak memiliki jaringan sama sekali Untuk container yang tidak perlu koneksi
Overlay Jaringan antar container di beberapa host Untuk aplikasi multi-host dengan Docker Swarm
Macvlan Container diberi alamat MAC sendiri dalam jaringan fisik Untuk integrasi dengan jaringan fisik

Mari kita bahas satu per satu!

3. Bridge Network: Default Tapi Kuat!

Ketika kamu menjalankan container tanpa mengatur jaringan secara eksplisit, Docker akan otomatis menempatkannya di jaringan Bridge.

Coba jalankan perintah ini untuk melihat jaringan yang tersedia di Docker:

docker network ls

Kamu akan melihat sesuatu seperti ini:

NETWORK ID          NAME                DRIVER              SCOPE
f3d8efefc5b7        bridge              bridge              local
07a29dbdd61f        host                host                local
9c293fac2e3d        none                null                local

Ciri-ciri Bridge Network:
  Container dalam jaringan bridge yang sama bisa saling berkomunikasi menggunakan nama container sebagai hostname.
  Jaringan terisolasi dari host dan tidak bisa langsung diakses dari luar (kecuali kita membuka port).

Contoh menjalankan container dengan Bridge Network:

docker network create my_bridge
docker run -d --name web --network my_bridge nginx
docker run -d --name db --network my_bridge mysql:8

Dengan ini, container web bisa mengakses db hanya dengan memanggil nama db.

ping db

4. Host Network: Langsung Ke Jaringan Host

Dalam mode ini, container langsung terhubung ke jaringan host, tanpa isolasi.

Jalankan container dengan Host Network:

docker run -d --name web --network host nginx

Kelebihan:
  Performa lebih baik karena tidak perlu NAT (Network Address Translation).
  Bisa langsung mengakses semua port dan interface di host.

Kekurangan:
  Tidak ada isolasi, sehingga bisa menyebabkan konflik port dengan aplikasi lain di host.

5. None Network: Container yang Antisosial

Mode ini digunakan jika container tidak perlu koneksi jaringan sama sekali.

Jalankan container dengan jaringan None:

docker run -d --name isolated_container --network none nginx

Container ini tidak bisa berkomunikasi dengan container lain atau internet. Cocok untuk aplikasi yang benar-benar standalone atau testing tertentu.

6. Overlay Network: Jaringan di Berbagai Host

Ini adalah jenis jaringan yang memungkinkan container berkomunikasi antar beberapa host yang berbeda. Biasanya digunakan dalam Docker Swarm untuk kluster aplikasi.

docker network create --driver overlay my_overlay

Dengan Overlay Network, container bisa berkomunikasi meskipun mereka ada di server yang berbeda!

7. Macvlan: Bikin Container Punya Alamat MAC Sendiri

Jika kamu ingin container memiliki alamat MAC sendiri dan terlihat seperti perangkat fisik di jaringan, gunakan Macvlan.

docker network create -d macvlan \
    --subnet=192.168.1.0/24 \
    --gateway=192.168.1.1 \
    -o parent=eth0 my_macvlan

Ini berguna untuk integrasi dengan jaringan fisik, misalnya untuk aplikasi legacy yang butuh alamat IP unik.

8. Menghubungkan Container ke Jaringan yang Sama

Kalau kamu ingin menghubungkan beberapa container dalam satu jaringan yang sama, gunakan Docker Network Connect.

Misalnya, kita punya jaringan my_bridge dan ingin menambahkan container ke dalamnya:

docker network connect my_bridge web
docker network connect my_bridge db

Sekarang web dan db bisa saling ngobrol!

9. Mengecek dan Mengelola Jaringan Docker

Kamu bisa melihat detail jaringan yang ada dengan perintah ini:

docker network inspect bridge

Untuk menghapus jaringan, gunakan:

docker network rm my_bridge

10. Kesimpulan: Docker Networking Bikin Hidup Lebih Mudah!

 Bridge Network → Default, bagus untuk komunikasi antar container dalam satu host.
  Host Network → Langsung ke jaringan host, performa lebih cepat, tapi tanpa isolasi.
  None Network → Container tanpa jaringan, cocok untuk sandbox atau testing.
  Overlay Network → Jaringan antar beberapa host, cocok untuk Docker Swarm.
  Macvlan Network → Container dengan IP sendiri di jaringan fisik.

Docker Networking mempermudah komunikasi antar container tanpa perlu repot konfigurasi manual!

Jadi, sekarang kamu sudah lebih paham soal jaringan di Docker, kan?

 

Post a Comment

0 Comments