这里介绍两种修改docker默认网桥的方法,这两种方法都是通过修改daemon.json文件实现的。 第一种

1、删除旧网络

$ sudo service docker stop $ sudo ip link set dev docker0 down $ sudo brctl delbr docker0

2、修改/etc/docker/daemon.json文件

vim /etc/docker/daemon.json { "bip": "192.168.0.1/24" }

3、重启Doker服务

$ sudo service docker start

4、检查

$ ifconfig docker0 docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::42:43ff:fe3d:4565 prefixlen 64 scopeid 0x20<link> ether 02:42:43:3d:45:65 txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 7 bytes 586 (586.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

5、新建容器并查看ip

docker run -it mysql /bin/bash

然后按Ctrl+D推出容器 ,查看容器状态docker ps -a

此时我们查看容器的ip是null,因为容器在退出状态是没有ip信息的。 我们查看一下

docker inspect e5

开启容器

docker start e5

再次查看

docker inspect e5

第二种 1、删除旧网桥

$ sudo service docker stop $ sudo ip link set dev docker0 down $ sudo brctl delbr docker0

2、手动创建一个新的网桥名称为 bridge0

$ sudo brctl addbr bridge0 $ sudo ip addr add 192.188.0.1/16 dev bridge0 $ sudo ip link set dev bridge0 up

3、查看是否已经创建bridge0

ifconfig beidge0 bridge0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.1 netmask 255.255.255.0 broadcast 0.0.0.0 inet6 fe80::9044:aeff:fed1:155f prefixlen 64 scopeid 0x20<link> ether 7e:5f:08:47:cf:48 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 8 bytes 656 (656.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

4、创建dameon.json

vim /etc/docker/dameon.json { "bridge": "beidge0" }

5、重启docker

service docker start

新建容器并查看ip同第一种方法的步骤5一样!