docker daemon没有网桥无法启动的问题

  • A+
所属分类:操作系统

docker默认的网络模式是网桥。按理说docker会自动创建网桥docker0的。不过也有有碰到原生的docker不自动创建网桥,而是启动时报错。本文是docker服务启动不了的处理方法。

报错信息

could not find an available predefined network

手动设置网桥

这个报错是因为缺少网桥。默认网桥名字是docker0。只需要创建所需的网桥即可。
以下命令需要root权限。

查看网桥
brctl show
创建和启动网桥
brctl addbr docker0
# 启动网桥
ifconfig docker0 up
# 配置网络地址
ifconfig docker0 192.168.0.0

配置网桥后,重启dockerd就能启动了。

其它

如果想使用不同的网桥名字,比如bridge0,需要在bridge参数里指明。
新版的文件是 /etc/sysconfig/docker,将选项加到$OPTIONS参数里。

--bridge=bridge0

禁用docker网桥

大部分人使用docker都只是在一台机器上做测试,配置网桥容易造成网络问题。个人建议是使用host模式更好,把网桥禁用掉。
以下配置,可以让docker禁用掉网桥,配置的地方同上。

--bridge=none 
如何host模式启动容器
docker run -itd --net=host xxx

host模式的容器和宿主机共用网络,等于说关闭了网络NameSpace,相比bridge之类的模式,不会损失性能。单机情况下,使用hotst模式已经足够了,也更为灵活。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: