运行 docker-compose 中同一端口上的多个服务

running multiple services on same port in docker-compsoe

我们有多个微服务 运行 在端口 8080 上。据我所知,只有 1 个服务可以 运行 在端口 8080 上。

这是否意味着 运行将微服务作为一个端口:8080:8081 或 8081:8081?

以下是我们试图在 docker-compose

中实现的服务
reference-service:
  image: **
  ports:
    - "8080:8080"

test-service:
    image: **
    ports:
      - "8080:8081"

有两种端口:容器端口主机端口。两个进程不能在一个容器内持有同一个容器端口。您也不能将服务的容器端口暴露给同一个主机端口。

但是每个服务都在自己的容器内运行,因此两者都可以使用容器端口 8080。

因此可以接受以下配置:您有两个服务,每个服务 运行 在其自己的容器中并具有容器端口 8080。每个容器端口 暴露给不同的主机端口 像这样:

reference-service:
  image: **
  ports:
    - "8080:8080"

test-service:
    image: **
    ports:
      - "8081:8080"