Docker可以将多个容器端口映射到一个主机端口吗?
根据我的理解,端口映射是1比1,我不明白为什么在容器数据中用于端口映射的数据结构是这样的,
"NetworkSettings": { [...] "Ports": { "8888/tcp": [ { "HostIp": "0.0.0.0", "HostPort": "8888" } ] }
"8888/tcp"
键映射到一个列表而不是单个对象。 因此,在Java客户端中,Ports的数据结构就像这个Map<String, List<PortBinding>>
,但是List
在这里只能包含1个元素吗? 还是我错过了一些根本的东西?
这是完全合法的:
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。