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

你们能帮我解决这个问题吗?

谢谢!

你搞反了。

<host_port>:<service_port> 而不是相反。切换数字,您应该没问题,但请确保您的服务预期这些新端口上的流量。

编辑:documentation