【问题标题】:Docker Per Network Port MappingDocker 每个网络端口映射
【发布时间】:2019-04-21 13:07:47
【问题描述】:

我正在寻找一种方法将同一个端口映射到 2 个不同的端口,每个端口用于不同网络中的另一个容器。 考虑以下 docker-compose 场景:

services:

  web:
    build: .
    ports:
      - "8080:8080"
    networks:
      Net1:
      Net2:

  serv1:
    image: tomcat:7.0.92-jre8
    networks:
      Net1:
  serv2:
    image: tomcat:7.0.92-jre8
    networks:
      Net2:

现在我真正想做的是实际映射“网络”服务端口 8080,以便 serv1 可以将其作为 8081 使用,而 serv2 将其作为 8082 使用。

这可能吗?

谢谢

【问题讨论】:

  • 我可以知道您使用的是哪个网络服务器吗?

标签: docker docker-compose docker-networking


【解决方案1】:

端口会发布到主机,而不是 docker 网络,也不会发布到其他 docker 容器。所以上面的“8080:8080”将docker主机上的8080端口映射到容器的8080端口。

对于容器到容器的通信,使用 docker 的内部 DNS 进行服务发现和容器端口。因此 serv1 和 serv2 都可以连接到 http://web:8080 以访问其容器端口上的 Web 服务。这绝不会阻止 serv1 和 serv2 在它们自己的容器中监听它们希望的任何端口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    相关资源
    最近更新 更多