Ketika membuat Docker Container, terkadang saya lupa tidak menambahkan parameter expose port. Setelah Docker Container berjalan dengan baik sesuai dengan yang diinginkan, baru deh keinget bahwa portnya belum di expose.

Jika terjadi seperti itu, biasanya saya buat lagi Docker Container baru dengan image hasil commit Container yang sudah dibuat sebelumnya. Sebenarnya, ada cara lain apabila saya tidak mau membuat Container baru.

#docker ps


Cek HostName Container nya
#docker inspect id-container | grep HostnamePath


Berikut contoh hasilnya

"HostnamePath": "/var/lib/docker/containers/1e5f210c87a86547f95a5f64f25b93d85f944e1b5d110007451cbd86aeead90c/hostname",

- Stop service Docker

#systemctl stop docker / #systemctl stop snap.docker.dockerd.service

- Masuk pada folder hasil inspect diatas

cd /var/lib/docker/containers/1e5f210c87a86547f95a5f64f25b93d85f944e1b5d110007451cbd86aeead90c
– Backup file hostconfig.json dan config.v2.json

cp hostconfig.json backup-hostconfig.json
cp config.v2.json backup-config.v2.json

- Buka file hostconfig.json

#nano hostconfig.json

Sesuaikan isian pada bagian PortBindings. Contoh

"PortBindings":{"5432/tcp":[{"HostIp":"","HostPort":"5439"}]

Pada konfigurasi diatas, saya melakukan expose port 5432 yang ada pada Container. Sedangkan disisi Host, saya menggunakan port 5439 untuk akses port 5432 pada Container,

Keterangan :
- “5432/tcp” dan adalah port yang listen pada Container
- [{“HostIp”:””,”HostPort”:”5439″}] adalah port yang listen pada Host

- Setelah selesai dimodifikasi, jalankan kembali service Dockernya dan start Container nya

#systemctl start docker / #systemctl start snap.docker.dockerd.service
#docker start container-id

Berikut ini adalah tampilan sebelum dan sesudah dilakukan modifikasi

Sebelum 

Sesudah 

Sekarang port 5432 disisi Host