Understanding docker port mappings
Asked Answered
E

2

26

Please explain the following output:

docker ps ExanpleContainter

Ports
--------
10.10.10.10:443->443/tcp, 0.0.0.0:1937->1937/tcp

And, docker inspect ExanpleContainter

"Ports": {
  "1937/tcp": [
    {
      "HostIp": "0.0.0.0",
      "HostPort": "1937"
    }
  ],
  "443/tcp": [
    {
      "HostIp": "10.10.10.10",
      "HostPort": "443"
    }
  ]
}

I'd want to understand how mapping is done and which port is mapped where?

Edra answered 23/1, 2017 at 2:3 Comment(0)
P
34

10.10.10.10:443->443/tcp

This means docker host IP 10.10.10.10 on port 443 is mapped to specified container on port 443. packets arriving at that ip port combination will be accessible in the container on the same port (443)

0.0.0.0:1937->1937/tcp

Packets arriving on all available IP addresses (0.0.0.0) on docker host on port 1937 are accessible on specified container on the same port (1937)

Read explanation in the answer and compare it to output of docker inspect ExanpleContainter.

Paduasoy answered 23/1, 2017 at 2:16 Comment(1)
Farhad, I've read and understood your explanation, definitely it makes sense and is helpful. Thank you!!Edra
G
12

Above answer is correct I am trying to explain another way which helped me understand port mappings.

docker ps ExanpleContainter

Ports


10.10.10.10:443->443/tcp, 0.0.0.0:1937->1937/tcp

Here your container ExanpleContainer is exposing two ports.

  1. 10.10.10.10:443->443/tcp
  2. 0.0.0.0:1937->1937/tcp

Output in following format,

[IP_ADDR]:{PORT_OUTSIDE_CONTAINER} -> {PORT_INSIDE_CONTAINER} / {PROTOCOL} 

Now while creating container if you don't specify which internal ports to map it will map random ports but in your case both (host and exposed) ports are mapped same.

Gregale answered 30/8, 2020 at 17:4 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.