2016-06-07 138 views
2

根据我的理解端口映射是1比1,我不明白的是为什么在容器数据用于端口映射的数据结构是这样的,Docker可以将多个容器端口映射到一个主机端口吗?

"NetworkSettings": { 
[...] 
"Ports": { 
    "8888/tcp": [ 
     { 
      "HostIp": "0.0.0.0", 
      "HostPort": "8888" 
     } 
    ] 
} 

"8888/tcp"到列表键映射,而不是的单个对象。因此,在Java客户端中,端口的数据结构就像这样Map<String, List<PortBinding>>,但List这里只能包含1个元素吗?还是我错过了一些根本性的东西?

回答

7

这是完全合法的:

docker run -tid -p 8080:80 -p 8090:80 nginx

"Ports": { 
      "443/tcp": null, 
      "80/tcp": [ 
       { 
        "HostIp": "0.0.0.0", 
        "HostPort": "8090" 
       }, 
       { 
        "HostIp": "0.0.0.0", 
        "HostPort": "8080" 
       } 
      ] 
     } 

所以,不,这不是1比1。

+0

我现在感觉太无知了:(,但由于! – Derek

相关问题