Kejadian ini pertama kali saya alami saat deploy container baru di server produksi. Server terlihat normal, koneksi internet lancar, dan DNS tidak bermasalah. Namun anehnya, container Docker sama sekali tidak bisa ping keluar.
Awalnya saya kira image bermasalah. Namun setelah ganti image lain, hasilnya tetap sama. Dari situ saya mulai fokus ke jaringan Docker, bukan ke aplikasinya.
Gejala yang Muncul di Docker
Sebelum masalah ini ketahuan, beberapa tanda berikut muncul secara bersamaan:
- Container gagal update package
- Ping ke luar dari container timeout
- Pull image Docker sangat lambat atau gagal
- Server utama tetap bisa akses internet
Karena host normal, saya langsung curiga ke bridge network Docker.
Cek Koneksi dari Dalam Container
Langkah pertama, saya masuk ke salah satu container:
docker exec -it nama_container /bin/sh
Lalu saya coba ping ke internet:
ping 8.8.8.8
Hasilnya timeout. Namun saat ping dari host, koneksi berjalan normal. Dari sini, jelas masalah hanya terjadi di Docker.
Cek Network Docker
Selanjutnya, saya cek daftar network Docker:
docker network ls
Bridge default masih ada. Namun saat saya inspeksi, terlihat routing tidak berjalan normal.
docker network inspect bridge
Masalah yang Sering Terjadi
Dari pengalaman di beberapa server, masalah ini biasanya muncul karena:
- Firewall server memblokir forwarding
- Rule iptables Docker rusak
- Docker tidak reload setelah update kernel
- Service Docker restart tidak bersih
Di kasus saya, iptables Docker tidak terbentuk dengan benar.
Restart Docker dan Reload Network
Langkah paling aman yang saya lakukan adalah restart Docker secara penuh:
systemctl restart docker
Setelah itu, saya cek ulang koneksi dari container. Pada beberapa server, cara ini sudah cukup.
Reset Network Bridge Docker
Jika restart belum menyelesaikan masalah, saya biasanya reset bridge Docker:
docker network rm bridge
systemctl restart docker
Docker akan membuat ulang bridge network secara otomatis.
Cek IP Forwarding Server
Saya juga memastikan IP forwarding aktif:
cat /proc/sys/net/ipv4/ip_forward
Jika nilainya 0, saya aktifkan:
sysctl -w net.ipv4.ip_forward=1
Hasil Setelah Diperbaiki
Setelah bridge dan iptables normal kembali, container langsung bisa ping keluar. Pull image berjalan lancar, dan aplikasi kembali normal tanpa perlu rebuild.
Baca Juga :
- Install Nginx Proxy Manager (NPM) di Docker Ubuntu Server
- Cara Reset Password Portainer
- Monitoring Resource Docker CPU & RAM
Dari kejadian ini, saya belajar bahwa masalah Docker tidak selalu datang dari aplikasinya, tetapi sering muncul dari layer network.
Kesimpulan
Jika Docker tidak bisa akses internet sementara server normal, jangan langsung menyalahkan image atau DNS. Fokuslah ke network Docker, iptables, dan service-nya. Pengecekan sederhana bisa menghemat banyak waktu debugging.
