Docker — How to Edit Bind Exist Container Ports to the Host

Image for post
Image for post

We have this running container, and wa re going to change the binded container port from 9212 to 9200.

Stop the running container which you want to edit, in my case it is mgt-dev-71. So I run this command :

docker stop mgt-dev-71

For linux open up your terminal and go to /var/lib/docker/containers/

For windows or linux, you can follow this step to access /var/lib/docker/containers/ : https://medium.com/@bestafiko/how-to-access-docker-mobylinux-vm-on-windows-or-mac-23de89b47099

Change directory to where your container directory which is the container ID. In my case, it is 610d6949f329.

Edit hostconfig.json via nano or vim editor, you will find such long one line like this one.

Image for post
Image for post

Then, find PortBindings like in the picture below.

Image for post
Image for post

And add or edit to PortBindings, in my case I would like to port 8080 of my computer to port 80 of this container. So it would be like this.

"PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8080"}], "22/tcp":[{"HostIp":"","HostPort":"22"}], "3306/tcp": ......}

80 : is port in container.

8080 : is port in computer/host that will be pointed to port 80 of container.

systemctl restart docker

in Windows and Mac, you need to restart docker machine.

docker start mgt-dev-71

Voila… You just point port 8080 of your host to docker container.

I wrote these tutorials for myself in future when I forget for the next steps.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store