了解docker端口映射

Ani*_*dha 12 linux docker rhel7 docker-machine

请解释以下输出:

docker ps ExanpleContainter

Ports
--------
10.10.10.10:443->443/tcp, 0.0.0.0:1937->1937/tcp
Run Code Online (Sandbox Code Playgroud)

并且,docker检查ExanpleContainter

"Ports": {
  "1937/tcp": [
    {
      "HostIp": "0.0.0.0",
      "HostPort": "1937"
    }
  ],
  "443/tcp": [
    {
      "HostIp": "10.10.10.10",
      "HostPort": "443"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想了解如何完成映射以及映射到哪个端口?

Far*_*ahi 18

10.10.10.10:443->443/tcp

这意味着端口443上的docker host IP 10.10.10.10被映射到端口443上的指定容器.到达该ip端口组合的数据包将可以在同一端口的容器中访问(443)

0.0.0.0:1937->1937/tcp

到达端口1937上docker主机上所有可用IP地址(0.0.0.0)的数据包可在同一端口上的指定容器上访问(1937)

阅读答案中的解释并将其与输出进行比较docker inspect ExanpleContainter.


dar*_*der 5

以上答案是正确的,我试图解释另一种帮助我理解端口映射的方式。

docker ps 示例容器

端口


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

这里你的容器 ExanpleContainer 暴露了两个端口。

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

按以下格式输出,

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

现在在创建容器时,如果您没有指定要映射的内部端口,它将映射随机端口,但在您的情况下,(主机和公开的)端口都映射相同。