How can I grab exposed port from inspecting docker container? How can I grab exposed port from inspecting docker container? docker docker

How can I grab exposed port from inspecting docker container?


Execute the command: docker inspect --format="{{json .Config.ExposedPorts }}" src_python_1

Result: {"8000/tcp":{}}

Proof (using docker ps):

e5e917b59e15        src_python:latest   "start-server"         22 hours ago        Up 22 hours         0.0.0.0:8000->8000/tcp                                        src_python_1


It is not easy as with ip address as one container can have multiple ports, some exposed and some not, but this will get it:

sudo docker inspect name | grep HostPort | sort | uniq | grep -o [0-9]*

If more than one port is exposed it will be displayed on a new line.


There are two good options depending on your taste: docker port my-container 1234 | grep -o [0-9]*$ and docker inspect --format='{{(index (index .NetworkSettings.Ports "1234/tcp") 0).HostPort}}' my-container