Ini adalah masalah yang paling sering terjadi. Jika container A dan B berada di jaringan (network) yang berbeda, secara default mereka memang tidak akan bisa saling berkomunikasi. Untuk memastikan keduanya berada dalam network yang sama, kamu bisa cek dengan perintah berikut:
Docker Networking: Cara Menghubungkan Container dengan Mudah
Oleh
Fitri Aulia
MyDomaiNesia tau tidak sih fakta menarik Docker? Salah satu hal keren dari Docker itu, container-container-nya bisa saling terhubung dengan mudah. Mau itu di server yang sama atau berbeda, semuanya bisa diatur lewat networking bawaan Docker. Ini sangat membantu untuk aplikasi yang punya banyak komponen, seperti database, backend, dan frontend yang jalan di container terpisah. Di sini, kita bakal bahas cara gampang buat atur koneksi antar container, mulai dari network default Docker sampai opsi-opsi yang lebih fleksibel buat kebutuhan khusus.
Daftar Isi
Apa Itu Docker Networking?
Docker networking basically adalah cara agar container bisa saling terhubung. Walaupun mereka jalan di ruang masing-masing, lewat networking, mereka tetap bisa bertukar data dan kerja beriringan. Docker juga sudah menyediakan beberapa jenis network, dari yang otomatis (seperti bridge) sampai yang bisa kamu atur sendiri sesuai kebutuhan dan preferensi lingkungan pengembangan atau produksi.
Jadi, kalau aplikasi kamu butuh beberapa service yang berjalan di container berbeda misalnya, ada web server, database, dan cache Docker networking akan mengatur mereka agar bisa saling terhubung. Tanpa perlu khawatir soal setup jaringan manual yang rumit, Docker udah menyediakan cara mudah buat merangkum semua container dalam satu jaringan yang bisa diatur dengan simpel.
Bahkan, dengan fitur seperti Docker Compose, kamu bisa mendefinisikan semua koneksi antar container dalam satu file YAML, membuat proses deployment dan scaling jadi jauh lebih praktis. Ini sangat berguna untuk tim devops maupun developer yang ingin menjaga lingkungan tetap konsisten di berbagai tahap pengembangan. Selain itu, kamu juga bisa menentukan aturan keamanan dan akses, sehingga hanya container tertentu yang bisa saling berkomunikasi, meningkatkan kontrol dan keamanan sistem secara keseluruhan.
Jenis-Jenis Docker Network
Docker punya beberapa jenis jaringan yang bisa kamu pilih, tergantung apa yang aplikasi kamu butuhkan dan bagaimana arsitektur layanan kamu dirancang. Beberapa networking yang paling sering dipakai:
- Bridge Network
Ini jaringan default yang dipakai Docker network kalau kamu tidak setting apa-apa. Container yang ada di jaringan ini bisa saling komunikasi, tapi tidak bisa diakses dari luar Docker host, kecuali kamu buka port-nya. - Host Network
Kalau pakai host network, container akan menggunakan IP dan network dari host-nya langsung. Jadi, container bisa langsung akses semua resources di host tanpa pembatasan. Biasanya dipakai kalau aplikasi kamu butuh performa tinggi dan tidak ada isolasi jaringan. - Overlay Network
Ini buat container yang jalan di lebih dari satu Docker host. Overlay network memungkinkan container di host yang berbeda tetap bisa saling komunikasi. Biasanya dipakai di Docker Swarm atau Kubernetes buat aplikasi yang terdistribusi. - None Network
Seperti namanya, di jaringan ini container tidak akan punya koneksi sama sekali. Biasanya dipakai buat container yang emang tidak membutuhkan akses jaringan, atau kamu mau handle networking secara manual.
Cara Menghubungkan Container dengan Default Network
Kalau kamu tidak membuat network sendiri, Docker otomatis akan membuat container kamu masuk ke jaringan bridge (jaringan default-nya Docker). Nah, di jaringan ini, container-container bisa saling terhubung pakai nama container sebagai hostname. Simpel banget, tidak perlu ribet setting apa-apa. Contohnya gini:
- Jalankan container database dulu:
1docker run -d --name db mysql:5.5 - Jalankan container app dan hubungkan ke db:
1docker run -d --name app --link db your-image-app
Atau kalau kamu mau lebih โmodernโ, bisa buat container pakai bridge network default dan saling panggil pakai nama container:
|
1 2 |
docker run -d --name db mysql:5.5 docker run -d --name app --network bridge your-image-app |
Membuat Custom Network di Docker Network
Kalau kamu butuh kontrol lebih atas koneksi antar container, buat custom network di Docker adalah pilihan yang pas. Dengan jaringan kustom, container-container kamu bisa saling komunikasi pakai nama, tanpa perlu repot setting โlink atau port forwarding. Buatnya mudah banget, contoh:
|
1 |
docker network create my-network |
Setelah itu, kamu tinggal jalankan container dengan masukin mereka ke network tersebut:
|
1 2 |
docker run -d --name db --network my-network mysql:5.5 docker run -d --name app --network my-network your-image-app |
Docker Compose dan Networking
Kalau kamu udah mulai pakai beberapa container sekaligus, Docker Compose bisa jadi sahabat terbaikmu. Selain merapikan semua konfigurasi container dalam satu file (docker-compose.yml), Compose juga otomatis buat jaringan kustom buat semua service yang ada di file itu. Jadi kamu tidak perlu repot buat network manual. Misalnya kamu punya service app dan db, kamu cukup define seperti ini:
|
1 2 3 4 5 6 7 8 9 |
version: '3' services: ย ย db: ย ย ย ย image: mysql:5.5 ย ย app: ย ย ย ย image: my-app-image ย ย ย ย depends_on: ย ย ย ย ย ย - db |
Troubleshooting
Berikut beberapa hal yang bisa dicek kalau lagi nemu masalah networking di Docker, terutama saat container tidak bisa saling terhubung seperti yang diharapkan:
1. Pastikan container ada di network yang sama
|
1 |
docker network inspect <network-name> |
2. Cek nama host yang dipakai
Di Docker, MyDomaiNesia bisa akses container lain pakai nama servicenya (kalau pakai Compose) atau nama containernya. Pastikan kamu tidak salah tulis. Misal harusnya db, tapi kamu nulis database.
3. Port belum terbuka
Kalau kamu mau akses container dari luar (misal browser atau tool database), pastikan port-nya udah di-expose. Contoh:
|
1 |
docker run -p 3306:3306 mysql:5.5 |
4. Cek firewall atau security rules
Kadang, OS kamu atau server VPS punya aturan firewall yang membatasi komunikasi antar container atau keluar-masuk jaringan. Pastikan semua akses yang dibutuhkan udah di-allow.
5. Log dan status container
Jangan lupa cek log container pakai:
|
1 |
docker logs <container-name> |
atau cek apakah container lagi jalan:
|
1 |
docker ps |
Penutup
Networking di Docker itu sebenernya tidak ribet, asal paham konsep dasarnya. Kamu bisa mulai dari network default seperti bridge, terus lanjut membuat network custom biar lebih fleksibel, atau pakai Docker Compose biar semua koneksi antar container otomatis diatur. Kalau ada masalah, tinggal cek jaringan, nama host, dan pastikan semua container ada di network yang sama. Dengan memahami cara kerja DNS internal Docker dan penggunaan alias, kamu bisa mengatur komunikasi antar container dengan lebih efisien dan stabil. Ini sangat membantu dalam pengembangan aplikasi microservices atau ketika mengelola banyak layanan sekaligus di satu lingkungan Docker yang kompleks.
Nah, biar semua setup ini jalan mulus, pastikan juga kamu pakai Cloud VPS yang stabil dan punya resource yang cukup. VPS membuat kamu punya kontrol penuh atas Docker environment, tanpa khawatir soal keterbatasan akses atau performa. Cocok banget buat kamu yang pengen deploy container dengan lebih fleksibel dan lancar.

