Docker Per Network Port Mapping

问题描述 投票:0回答:1

我正在寻找一种方法将同一个端口映射到两个不同的端口,每个端口用于另一个网络中的另一个容器。考虑下面的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:

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

这甚至可能吗?

谢谢

docker docker-compose docker-networking
1个回答
3
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.