Cara Port Mapping di Docker
Kalau DomaiNesians pernah membuat aplikasi menggunakan Docker, pasti sempat bingung kenapa aplikasi tidak bisa diakses dari browser padahal container-nya udah jalan. Nah, masalahnya biasanya ada di bagian port mapping. Di Docker, aplikasi yang jalan di dalam container tidak otomatis bisa diakses dari luar, kita perlu membuka akses dulu melalui port. Di artikel ini, kita bakal bahas gimana cara mapping port di Docker supaya aplikasi bisa diakses dari luar, lengkap dengan contoh yang mudah dipraktekkan.
Apa Itu Port Mapping di Docker?
Port mapping di Docker itu sebenarnya konsep yang simpel, tapi sering membuat bingung di awal. Jadi, ketika menjalankan aplikasi di dalam container, aplikasi itu seperti tinggal di rumah tertutup yang tidak langsung terhubung ke dunia luar alias ke komputer host atau internet. Nah, biar aplikasi itu bisa diakses dari luar perlu membuka pintu melalui port mapping.
Secara teknis, port mapping adalah proses mengarahkan port tertentu dari container ke port yang ada di host. Misalnya, aplikasi berjalan di dalam container di port 5000, dan kamu mau akses lewat browser di port 8080, kamu tinggal mapping dengan perintah -p 8080:5000. Artinya, permintaan ke port 8080 di host akan diteruskan ke port 5000 di container.
Kenapa Aplikasi di Container Tidak Bisa Langsung Diakses?
Saat menjalankan aplikasi di dalam container Docker, secara default aplikasi tersebut hanya bisa diakses dari dalam container itu sendiri. Ini karena Docker mendesain container agar terisolasi dari sistem host dan jaringan luar demi keamanan dan keteraturan.
Jadi, meskipun aplikasi kamu sudah berjalan dan mendengarkan di port tertentu misalnya 3000, DomaiNesians belum melakukan port mapping, sistem host tidak akan tahu harus meneruskan permintaan ke container tersebut. Akibatnya, saat kamu coba akses aplikasi dari browser atau tools lain di luar container, koneksi akan gagal.
Supaya aplikasi bisa diakses dari luar, kamu perlu secara eksplisit memberitahu Docker untuk menghubungkan port di container ke port di host. Inilah yang disebut dengan port mapping.
Cara Mapping Port Docker
Ini adalah langkah penting yang harus dilakukan saat menjalankan container, karena tanpa port mapping, sistem host tidak tahu harus meneruskan koneksi ke mana.
1. Format Dasar Port Mapping
Kamu bisa mapping port dengan perintah:
|
1 |
docker run -p [port_host]:[port_container] nama_image |
- port_host: port di komputer kamu (host)
- port_container: port tempat aplikasi berjalan di dalam container
Contoh:
|
1 |
docker run -p 8080:3000 my-app |
Semua koneksi ke port 8080 di host akan diteruskan ke port 3000 di container. Jika aplikasi berjalan di port 3000, maka kamu bisa akses lewat http://localhost:8080.
2. Mapping Lebih dari Satu Port
Jika aplikasi butuh beberapa port, kamu bisa tambahkan opsi -p berkali-kali:
|
1 |
docker run -p 8080:3000 -p 3306:3306 my-app |
Ini sering dipakai untuk container yang punya lebih dari satu layanan, misalnya web server dan database sekaligus.
3. Cek Port yang Sudah Dimapping
Jika sudah menjalankan container, kamu bisa cek port mapping dengan perintah:
|
1 |
docker ps |
Nanti akan muncul daftar container yang aktif, lengkap dengan kolom PORTS yang nunjukin mapping yang sedang berjalan.
Troubleshooting Mapping Port Docker
Sudah mapping port, container jalan, tapi aplikasi masih tidak bisa diakses dari browser? Tenang, ini beberapa hal yang bisa kamu cek:
1. Pastikan Aplikasi Mengarah di IP yang Benar
Beberapa framework secara default hanya mengarah di localhost atau 127.0.0.1, yang artinya hanya bisa diakses dari dalam container. Pastikan aplikasi mengarah di 0.0.0.0 agar bisa menerima koneksi dari luar container. Contoh di Express.js:
|
1 |
app.listen(3000, '0.0.0.0'); |
2. Periksa Port yang Dimapping
Lihat kolom PORTS dan pastikan port host dan port container sudah sesuai dengan yang kamu maksud. Coba jalankan:
|
1 |
docker ps |
3. Cek Firewall atau Security Software
Jika menggunakan firewall (Windows, Linux, atau macOS), pastikan port yang kamu mapping tidak diblok. Beberapa antivirus juga suka ikut-ikutan blokir koneksi lokal.
4. Cek Aplikasi di Dalam Container
Masuk ke dalam container pakai:
|
1 |
docker exec -it nama_container sh |
Atau bash, tergantung base imagenya. Lalu coba cek aplikasi jalan atau belum. Bisa juga pakai curl localhost:3000 dari dalam container untuk cek.
5. Hindari Port yang Sudah Dipakai
Kalau port di host (misalnya 8080) sudah dipakai oleh proses lain, Docker tetap bisa jalan tapi koneksi bisa gagal. Coba pakai port lain, misalnya 8081.
6. Docker Desktop (Windows/macOS) Butuh Konfigurasi Tambahan
Pastikan juga tidak ada masalah jaringan antara VM Docker dan host. Di beberapa kasus, kamu perlu akses lewat IP tertentu, bukan localhost.
Tips Menggunakan Port Mapping di Docker
Biar proses mapping port makin lancar, berikut beberapa tips yang bisa kamu ikuti:
1. Gunakan Port yang Mudah Diingat
Jika sering testing aplikasi, pilih port yang familiar seperti 3000, 8000, atau 8080 di sisi host. Ini akan mempermudah akses dan ingat URL-nya.
2. Dokumentasikan Port yang Dipakai
Jika bekerja di tim atau menggunakan banyak container, catat port mapping-nya di README atau dokumentasi proyek. Ini bisa mencegah konflik port atau kebingungan saat debugging.
3. Gunakan docker-compose untuk Proyek Lebih Besar
Lebih baik pakai docker-compose. Kamu bisa atur port mapping langsung di file docker-compose.yml, jadi tidak perlu ngetik panjang-panjang di terminal.
4. Cek Akses Lewat curl
Akses via browser tidak berhasil, coba tes pakai curl:
|
1 |
curl http://localhost:8080 |
Pentingnya Penggunaan Port Mapping
Mapping port di Docker adalah kunci supaya aplikasi yang berjalan di dalam container bisa diakses dari luar dengan mudah dan lancar. Tanpa port mapping yang benar, aplikasi kamu hanya akan berjalan tertutup di dalam container dan tidak bisa diakses lewat browser atau tools lain. Dengan memahami cara mapping port secara tepat, kamu bisa memastikan aplikasi berjalan lancar dan siap diakses kapan saja tanpa hambatan.
Kalau kamu ingin performa yang lebih stabil dan fleksibilitas lebih tinggi untuk menjalankan Docker dalam jangka panjang, mempertimbangkan Cloud VPS bisa jadi langkah yang tepat dan menguntungkan. VPS memberikan kontrol penuh atas lingkungan server kamu, sehingga cocok untuk development maupun deployment aplikasi skala kecil hingga besar. Dengan VPS yang andal dan cepat, akses aplikasi via port mapping Docker jadi makin lancar tanpa hambatan dan siap untuk kebutuhan produksi.

