docker.service启动失败:Unit not found的原因及解决办法

2020-06-17 06:36:15易采站长站整理


[Unit]Description=Flanneld overlay address etcd agent
After=network.target
After=network-online.target
Wants=network-online.target
After=etcd.service
Before=docker.service

真正困扰了我很久的是,/usr/lib/systemd/system/flanneld.service我已经删除了,也systemctl daemon-reload了,究竟还有哪个文件漏删了。

经过检查,/etc/systemd/system/flanneld.service依然存在,并且存在/etc/systemd/system/docker.service.requires目录,在该目录下包含了软连接flanneld.service,该软链接指向了真正的flanneld.service,从而实现了两个服务的启动顺序的关联。

定位该类问题,经常会用到的命令有:

systemctl list-unit-files 列出所有可用的Unit
systemctl list-units 列出所有正在运行的Unit
systemctl –failed 列出所有失败单元
systemctl mask httpd.service 禁用服务
systemctl unmask httpd.service
systemctl kill httpd 杀死服务
systemd-analyze critical-chain:分析启动时的关键链
systemd-analyze blame 分析启动时各个进程花费的时间

解决办法

使用systemctl unmask flanneld.service禁止flanneld服务,然后删除
/etc/systemd/system/docker.service.requires/flanneld.service,使用systemctl daemon-reload重新加载服务配置文件,最后systemctl start docker.service,发现docker启动成功了。

以上所述是小编给大家介绍的docker.service启动失败:Unit not found的原因分析及解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对软件开发网网站的支持!

您可能感兴趣的文章:CentOS7 安装docker 解决启动不了的问题Docker容器的创建、启动、和停止的方法使用Shell脚本批量启停Docker服务