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

标签 docker networking docker-compose port

我们有多个微服务在 8080 端口上运行。据我所知,只有一个服务可以在 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"

关于docker - 在 docker-compose 中的同一个端口上运行多个服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64819934/

相关文章:

python - Docker容器网络偶尔失败

c# - VS2013 与 VS2010 不同,我无法从 Windows 应用程序访问网络驱动器

python获取上传/下载速度

docker - Docker 上的多个 Redmine 实例

node.js - 文件更改时,keystonejs docker-compose重新启动服务器

docker - 是否可以组合 “docker logs”输出和 “docker exec”输出?

docker - 在GitLab中使用ElasticSearch,如果ES Container崩溃了怎么办?

postgresql - docker 中的 pg_dump 服务器和 pg_dump 版本不匹配

如果在没有 shell 的情况下运行,Ruby 将以退出代码 1 响应 TERM 退出

networking - 如何限制网络流量以进行环境模拟?