docker-compose允许将端口映射到两个端口还是需要一个大使?

假设我有一个应用程序在8888上进行监听 – 应用程序的其他部分想要在8888上继续访问它 – 但外部用户需要在50000以上的端口范围内访问它 – 例如50888

我想在我docker-compose.yml是:

 ports: - "8888:8888" - "50888:8888" 

这会工作吗?

我的另一种select是在这里增加一个大使 :

 blah: image: blah:6 ports: - "8888:8888" container_name: blah networks: default: {} blah_ambassador: image: svendowideit/ambassador links: - blah ports: - "50888:8888" environment: - BLAH_PORT_8888_TCP:tcp://blah:8888 container_name: ops_ambassador networks: default: {} 

我的问题是: docker-compose允许将端口映射到两个端口还是需要一个大使?

前段时间,docker-compose使用字典来存储映射端口,键是内部端口,所以一个值覆盖另一个值。

这是使用列表在这里解决的。 所以,目前,docker-compose允许将内部端口映射到两个端口。 也许你正在使用一个老版本的docker-compose版本。

例:

 → docker-compose -v docker-compose version 1.8.0, build f3628c7 

Docker-compose文件内容( docker-compose.yml ):

 backend: image: your_image ports: - 3000:3000 - 8888:3000 

docker检查命令: docker inspect your_container_id

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