centos7 docker服务关机重启失败

文章讲述了用户在CentOS7服务器上遇到Docker服务无法启动的问题,涉及到iptables错误、NATchain丢失、IPV4启动失败、网络文件损坏等。作者详细描述了解决步骤,包括安装iptables、处理local-kv.db文件、检查并重载daemon和firewalld服务,以及注意备份网络配置文件。
摘要由CSDN通过智能技术生成

运行背景

之前centos7服务器上装了docker并且运行良好,但手残误操作导致服务器软重启,再次登录后docker服务启动不了

报错及解决

通过journalctl -xe查看日志发现报错如下

Error starting daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: Iptables not found
docker.service: main process exited, code=exited, status=1/FAILURE
Failed to start Docker Application Container Engine.
Unit docker.service entered failed state.

于是通过yum安装iptables以及iptable-services

yum install -y iptables-services iptables-devel.x86_64 iptables.x86_64

安装之后再次执行systemctl start docker仍然报错,百度后猜测是iptables服务未启动,于是通过systemctl start iptables启动iptables,但仍然报错,继续通过journalctl -xe查找原因
在这里插入图片描述
这个报错里面标红的是IPV4无法启动。所以就去查了关于IPV4无法启动如何解决,网上的解决方法是将/var/lib/docker/network/files目录下的文件全部删除。因为里面的local-kv.db文件记录了docker的网络信息,centos重启可能导致了该文件的损坏,导致网络连接出了问题。但对我来说没用,另外,大家在做删除操作的时候一定要先备份,
后来看最上面在提示/sbin/iptables找不到,就开始查看是不是真的没有,然后从别的服务器发现这个文件是链接的/sbin/xtables-multi,我就也链接了一个。
再次重启docker未报错,但因为之前按IPV4删了/var/lib/docker/network/files,重启docker会生成新的,然后原本的容器没办法直接docker start,后来关闭docker服务,然后将备份的文件拷过来,再重启后容器恢复正常。

其它可能原因

在运行systemctl start docker之前需要

  • daemon-reload
systemctl daemon-reload
  • 关闭防火墙
systemctl disable firewalld
  • 检查是否已经有docker进程在后台运行
ps aux | grep docker
#如果有,kill -9 之后restart
  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值