我们在局域网中使用Docker,最常遇到的一个困惑,就是有时候跨网段结果出现网络不通。原因是因为Docker默认生成的网关和我们的局域网网段有时候是冲突的,比如在172.16网段的机器上部署Docker,结果生成的docker0网桥是172.17网段,那么就和真实环境中使用该网段的机器冲突了(即ping不通172.17网段的机器)。为了避免冲突,首先想到的是改网关

> ifconfigd

8dc7f4f2c54604375deacfaf2d6e8e9d.png

默认172.17.x.x 网段

可以用编辑/etc/docker/daemon.json文件(若没有则创建),添加内容 "bip": "ip/netmask" [ 切勿与宿主机同网段 ]

{"bip":"172.15.0.1/16"}

systemctl restart docker.service #重启 docker 服务

查看修改后的 docker0 网桥信息 ifconfig

此时已修改

修改docker网段

1、 vim /etc/docker/daemon.json(这里没有这个文件的话,自行创建。IP自行更换别和虚拟机冲突即可)

{
    "bip":"192.168.0.1/24"
}

2、重启docker

systemctl restart docker

3、在重新看网段

b2711e8f502ed8003ee585e6c068bf42.png

修改docker-compose 网段

1、编辑docker-compose.yaml文件,添加networks,并在具体的server下添加信息 networks。重启重启即可

version: "3"
services:
 server1:
     。。。
    networks:
      - dc-oa
networks:
  dc-oa:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.15.0.0/16
          gateway: 172.15.0.1

相关命令1:查看docker网络信息

[root@centos-linux1 docker-compose]# docker network ls
NETWORK ID          NAME                          DRIVER              SCOPE
cbb2ba33ea22        bridge                        bridge              local
036b160d12fe        docker-compose_dc-oa          bridge              local
1a45f9c126af        docker-compose_default        bridge              local
26567c2a63c9        host                          host                local
2a58c9e255e3        none                          null                local
95de044b9b2a        redis-cluster_default         bridge              local
89dc569857b7        redis-cluster_redis-network   bridge              local

相关命令2:查看具体网络id 占用的IP

[root@centos-linux1 docker-compose]# docker network inspect 036b160d12fe
[
    {
        "Name": "docker-compose_dc-oa",
        "Id": "036b160d12fe252599124d7e7e75d47cf84a023eb1af20a337f2da337aa6e29b",
        "Created": "2020-12-08T16:55:08.757038571+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.15.0.0/16",
                    "Gateway": "172.15.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Containers": {},
        "Options": {},
        "Labels": {
            "com.docker.compose.network": "dc-oa",
            "com.docker.compose.project": "docker-compose",
            "com.docker.compose.version": "1.27.4"
        }
    }
]

相关命令3:删除指定网络连接

docker network rm 036b160d12fe

相关命令4:断开指定网络连接

docker network disconnect 036b160d12fe
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐