Docker-Compose网络:主机与容器中的重复IP地址是否存在问题?

时间:2018-01-17 16:38:29

标签: docker-compose ubuntu-16.04

亲爱的人们,下午好,

我有一个简单的问题,关于网络由docker-compose up生成的内容:

生成的IP地址172.17.0.1和172.18.0.1是否会干扰主机网络中具有相同IP地址的其他服务器?

如果你想改变Docker-Compose中的IP,IRC中的一个用户谈到了一场噩梦。是否仍然如此,是否有人有一种简单而安全的方式来更改IP?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我在IRC再次询问:

Docker创建的网桥IP(-Compose)是否对其他主机可见,或者它只是实用的实习生?我想这是一个网络问题,但在#network中只有少数人:)

  

网桥就像你的linux系统上的任何其他接口一样:它只对那些直接连接到同一网络的主机可见,没有某种路由。在库存配置中,唯一的东西"直接连接" docker bridge是(a)您的主机和(b)您的容器,因此它不会对您网络上的其他主机可见。

谢谢,所以我网络中的其他主机可以拥有相同的IP,例如172.17.0.1 ... nice

  

右。

你救了我的一天:)

答案 1 :(得分:0)

如果您想放心点(我不确定我的其他答案是否确实如此):

  1. 停止使用docker-compose(例如,使用dcsg签出)。

  2. 可以使用以下命令显示Docker网络列表:

    docker network ls
    
  3. 停止Docker:

    service docker stop
    
  4. 以下命令显示网络(其中eth0保持不变):

    ip route
    
  5. 删除Docker网络

    ip link del docker0
    
  6. 验证删除是否成功:

    ip route
    
  7. 创建或编辑文件/etc/docker/daemon.json。在这里您可以输入自己的IP范围。

    {
        "bip": "192.168.3.1/24",
        "fixed-cidr": "192.168.3.1/25" 
    }
    
  8. 启动Docker:

    service docker start
    
  9. 示例docker-compose.yml

    version: '3.1'
    services:
        blah:
            # ...
            # Prevent huge log files:
            logging:
                driver: "json-file"
                options:
                    max-size: "10m"
                    max-file: "10"
            networks:
                blubb:
            # ...
    
    networks:
        blubb:
            ipam:
                driver: default
                config:
                    - subnet: 192.168.4.0/24
    
  10. 别忘了(重新)启动Docker-Compose。

在Ubuntu 14.04和16.04上测试。玩得开心。