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。