这里介绍两种修改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=4163mtu 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
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=4163mtu 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
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一样!
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。