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" } ] },