如何解决网桥错误导致docker启动失败的问题
原文地址问题说明最近在往docker里面添加一个容器时出现了问题,于是准备重启一下docker服务,谁知道启动不了了,使用dockerd命令启动docker daemon时报错:Error starting daemon: Error initializing network controller: error obtaining controller instance: failed to cr
问题说明
最近在往docker里面添加一个容器时出现了问题,于是准备重启一下docker服务,谁知道启动不了了,使用dockerd命令启动docker daemon时报错:Error starting daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: Could not create nat/DOCKER chain,错误如下:
使用命令:systemctl start docker.service启动docker的话也会报错:Job for docker.service failed because the control process exited with error code. See “systemctl status docker.service” and “journalctl -xe” for details,然后使用命令:systemctl status docker.service查看详细的报错信息:
问题分析
在网上查了很多解决方法,大概有以下几类:
- 删除目录(/var/lib/docker/network/):rm -rf /var/lib/docker/network/
- 手动添加下docker0网桥:
brctl addbr docker0
ip addr add 172.17.0.1/16 dev docker0
ip link set dev docker0 up
systemctl restart docker
- 在/etc/docker/daemon.json中添加内容,然后重新加载daemon.json配置(systemctl daemon-reload),启动docker:
{ "graph": "/mnt/docker-data", "storage-driver": "overlay" }
- 如果daemon.json中配置了国内镜像的话将daemon.json文件后缀改为.conf,然后重新加载daemon.json配置(systemctl daemon-reload),启动docker
- 卸载docker,重新安装:
查询安装过的包
yum list installed | grep docker
本机安装过旧版本
docker.x86_64,
docker-client.x86_64,
docker-common.x86_64
删除安装的软件包
yum -y remove docker.x86_64
yum -y remove docker-client.x86_64
yum -y remove docker-common.x86_64
把yum包更新到最新
sudo yum update
安装docker
sudo yum install docker
可惜的是,上面的方法试了以后都没有解决我的问题。
问题解决
最后在一篇文章里Docker 自定义网桥后,无法正常启动问题找到了解决方法:
就是新建自定义网桥docker_new0:
brctl addbr docker_new0
然后docker就可以正常启动使用了,感觉很神奇,还不明白具体是怎么回事,后面会深入研究一下背后的原理。
更多推荐
所有评论(0)