Docker两个容器两个公共IP,同一个端口

时间:2018-01-12 19:41:51

标签: docker networking server ip containers

我在同一服务器eth0和eth0:0中有两个公共IP地址。

我有两个容器,我希望他们在同一个端口上收听,但不能在同一个公共地址上收听。 我的两个容器已连接到docker0

我有:

  • eth0 = 192.xx.xx.50
  • eth0:0 = 192.xx.xx.51
  • container1 = 172.17.0.5 ---------> 192.xx.xx.50:443
  • container2 = 172.17.0.6 ---------> 192.xx.xx.50:9443

我想要的是什么:

  • eth0 = 192.xx.xx.50
  • eth0:0 = 192.xx.xx.51
  • 容器1 = 172.17.0.5 ---------> 192.xx.xx.50:443
  • 容器2 = 172.17.0.6 ---------> 192.xx.xx.51:443

我该如何继续寻找解决方案?

  1. 创建一个新的docker网络?如何将它分配给第二个 IP地址?
  2. 其他解决方案?
  3. 感谢

1 个答案:

答案 0 :(得分:0)

您应该可以使用hostip:port

将内部容器端口映射到docker run -p ip:hostPort:containerPort ...etc...组合

您没有在帖子中指定内部端口,但假设您的容器中的应用程序正在侦听端口8080,并且您希望将其公开为192.168.100.1:80,那么您可以这样做:

docker run -p 192.168.100.1:80:8080 ...etc...

(详见https://docs.docker.com/engine/reference/run/#expose-incoming-ports