“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?
0 Comments