Docker将两个容器上的相同端口映射到主机上的不同端口

时间:2018-08-17 16:51:34

标签: docker docker-compose docker-networking

我有以下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端口映射到不同的主机端口,即。 80808086,我认为我不应该有冲突。我似乎无法在网上找到相关文档。

你们能帮我解决这种情况吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

你把它倒退了。

<host_port>:<service_port>,而不是相反。切换数字,您应该会很好,但是请确保您的服务在这些新端口上期望流量。

编辑:documentation