【问题标题】:Docker two containers two public IP , same PortDocker 两个容器两个公共 IP ,相同的端口
【发布时间】:2018-06-22 07:34:00
【问题描述】:

我在同一台服务器 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. 其他解决方案?

谢谢

【问题讨论】:

  • 看起来你需要的是一个反向代理,比如 nginx、ha 代理或 traefik。无论如何,一个端口不能有两个进程。

标签: docker networking server ip containers


【解决方案1】:

您应该能够使用docker run -p ip:hostPort:containerPort ...etc... 将内部容器端口映射到hostip:port 组合

您没有在帖子中指定内部端口,但假设您容器中的应用程序正在侦听端口 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

【讨论】:

  • 我认为这个问题并不清楚。请发布您的撰写文件
猜你喜欢
  • 1970-01-01
  • 2017-05-11
  • 2020-10-25
  • 2021-11-22
  • 2023-02-02
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
  • 2019-07-30
相关资源
最近更新 更多