Docker 将两个容器上的相同端口映射到主机上的不同端口
Docker Mapping Same Port On Two Containers To Different Ports On Host
我有以下 docker-compose
设置:
db:
image: postgres:10.5-alpine
adminer:
image: adminer:4.6.3
ports:
- 8080:8086
my-service:
image: my-image:latest
ports:
- 8080:8080
当我 运行 docker-compose up
时,出现以下错误:
ERROR: for adminer Cannot start service adminer: driver failed programming
external connectivity on endpoint docker_adminer_1
(dcd0d56d58bbbefdea89dc64532854597fcaec9736d7ddb3f8de74bc1577d5ee):
Bind for 0.0.0.0:8080 failed: port is already allocated
我一定是对网络有误解docker。我想是因为,我将两个服务上的 8080
端口映射到不同的主机端口,即。 8080
和8086
,我觉得不应该有冲突。我似乎无法在网上找到相关文档。
你们能帮我解决这个问题吗?
谢谢!
你搞反了。
<host_port>:<service_port>
而不是相反。切换数字,您应该没问题,但请确保您的服务预期这些新端口上的流量。
我有以下 docker-compose
设置:
db:
image: postgres:10.5-alpine
adminer:
image: adminer:4.6.3
ports:
- 8080:8086
my-service:
image: my-image:latest
ports:
- 8080:8080
当我 运行 docker-compose up
时,出现以下错误:
ERROR: for adminer Cannot start service adminer: driver failed programming
external connectivity on endpoint docker_adminer_1
(dcd0d56d58bbbefdea89dc64532854597fcaec9736d7ddb3f8de74bc1577d5ee):
Bind for 0.0.0.0:8080 failed: port is already allocated
我一定是对网络有误解docker。我想是因为,我将两个服务上的 8080
端口映射到不同的主机端口,即。 8080
和8086
,我觉得不应该有冲突。我似乎无法在网上找到相关文档。
你们能帮我解决这个问题吗?
谢谢!
你搞反了。
<host_port>:<service_port>
而不是相反。切换数字,您应该没问题,但请确保您的服务预期这些新端口上的流量。