【问题标题】:Assign different IPs to different Docker container为不同的 Docker 容器分配不同的 IP
【发布时间】:2016-09-07 15:12:51
【问题描述】:

我需要运行两个容器,每个容器都包含一个特定(公共)IP(11.11.11.22 和 11.11.11.23)上的脚本绑定

docker 主机本身位于 10.10.10.222。

我的子网是 11.11.11.20/27,我的网关是 11.11.11.21

如果重要的话,我的服务器在 SoftLayer。

docker-compose.yml

version: '2'
services:
  nginx-0:
    image: nginx:1.10
    ports:
      - 11.11.11.22:80:80
    networks:
      app_net:
        ipv4_address: 11.11.11.22

  nginx-1:
    image: nginx:1.10
    ports:
      - 11.11.11.23:80:80
    networks:
      app_net:
        ipv4_address: 11.11.11.23

networks:
  app_net:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 11.11.11.20/27
        gateway: 11.11.11.21

ip a


3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.222/27 brd 10.10.10.223 scope global eth1
       valid_lft forever preferred_lft forever
    inet 11.11.11.22/32 brd 11.11.11.22 scope global eth1:0
       valid_lft forever preferred_lft forever
    inet 11.11.11.23/32 brd 11.11.11.23 scope global eth1:1
       valid_lft forever preferred_lft forever

容器内的ips docker exec nginx-0 ip a

6: eth0@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 11.11.11.22/27 scope global eth0
       valid_lft forever preferred_lft forever

如果我卷曲这两个 IP,我会收到“卷曲:(52) 来自服务器的空回复”

我范围内的任何其他 IP 都将返回“连接失败...”

有什么解决办法吗?

提前致谢! 多米尼克

【问题讨论】:

  • Docker 的默认防火墙规则不允许外部访问容器。暴露的端口用于通过主机的 IP 访问服务。有关详细信息,请参阅networking documentation
  • 但我想绑定到容器内的特定 IP,所以这不是我真正的用例。

标签: networking docker ip


【解决方案1】:

我想通了。

我不得不删除主机上的接口。

ipconfig eth0:0 down
ipconfig eth0:1 down

我也将它从 /etc/networking/interfaces 中删除了

【讨论】:

    猜你喜欢
    • 2019-07-30
    • 2016-04-15
    • 2014-09-03
    • 2013-09-15
    • 2015-03-12
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多