背景

因为最近一直在折腾Kubernetes集群版本升级、Docker版本升级,所以不停的把测试环境安装、还原、升级、降级,简直乱的不行。终于,在测试Docker版本升级后,启动Docker时,遇到了docker.service: Unit not found。问题虽然不大,但是却折磨了我几个小时,所以在此mark一下。
操作系统:Red Hat Enterprise Linux 7
原因1:docker.socket
最初在启动docker时遇到问题,是因为docker.socket引起的,虽然记不清问题是表现为Unit not found还是执行systemctl start docker.service命令时hang住了,但是也一并记录在这里。
问题描述
我是从Docker 1.10.3升级到1.13.1版本,通过rpm包安装的。由于要保留自定义的一些Docker配置,所以在升级后,使用原来的/usr/lib/systemd/system/docker.service覆盖了新的docker.service。但是在1.10.3版本中,docker.service的[UNIT]里规定了Requires=docker.socket,也就是说,docker.service默认依赖于docker.socket,因为需要使用docker.socket来获取容器的信息。
[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket Requires=docker.socket
但是在1.13.1版本中,已经不再依赖于docker.socket了,所以系统里没有docker.socket,而我继续使用原来的docker.service,所以在启动的时候,就会出错。
解决办法
删除/usr/lib/systemd/system/docker.service的[UNIT]里包含的docker.socket,然后systemctl daemon-reload,最后systemctl start docker.service,发现启动成功了。
类似情况
如果是类似的情况,缺少docker.socket,但是新版本需要docker.socket。有两种方法可以解决该问题:
/usr/lib/systemd/system/docker.socket文件如下:
[Unit] Description=Docker Socket for the API PartOf=docker.service [Socket] ListenStream=/var/run/docker.sock SocketMode=0660 SocketUser=root SocketGroup=docker [Install] WantedBy=sockets.target
原因2:flanneld.service
就如背景里描述的,我恰好在这台出问题的机器上,安装过Kubernetes,以及flannel,然后又删掉了我之前以为的“所有”相关的文件。正是由于flannel的文件没有删除干净,导致出现了docker.service: Unit not found的问题。
问题描述
在确定不是因为docker.socket的问题导致的之后,我第一反应就是删除flannel导致的,因为我了解flanneld.service与docker.service直接是有启动顺序的关联的:
[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 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的原因分析及解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# docker.service启动失败
# unit
# not
# found
# 如何解决docker容器启动失败
# Docker Desktop启动失败的解决(Docker failed 
# docker中mysql初始化及启动失败问题解决方案
# Docker启动失败报错Failed to start Docker Application Con
# 解决办法
# 在此
# 小编
# 启动时
# 的是
# 就会
# 在这里
# 是因为
# 但是在
# 是有
# 很久
# 依赖于
# 是从
# 住了
# 为我
# 给大家
# 而我
# 问题是
# 记不清
# 自定义
相关文章:
如何获取开源自助建站系统免费下载链接?
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
建站168自助建站系统:快速模板定制与SEO优化指南
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
香港服务器租用每月最低只需15元?
代刷网站制作软件,别人代刷火车票靠谱吗?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
高防服务器租用如何选择配置与防御等级?
如何通过FTP空间快速搭建安全高效网站?
如何快速生成ASP一键建站模板并优化安全性?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何快速上传建站程序避免常见错误?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
大连网站设计制作招聘信息,大连投诉网站有哪些?
如何快速上传自定义模板至建站之星?
如何在云主机快速搭建网站站点?
建站主机选虚拟主机还是云服务器更好?
如何在IIS中新建站点并配置端口与物理路径?
如何在景安服务器上快速搭建个人网站?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
宝塔面板如何快速创建新站点?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
如何挑选最适合建站的高性能VPS主机?
大连 网站制作,大连天途有线官网?
,购物网站怎么盈利呢?
如何配置FTP站点权限与安全设置?
宝塔建站后网页无法访问如何解决?
如何在腾讯云服务器快速搭建个人网站?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
已有域名能否直接搭建网站?
专业商城网站制作公司有哪些,pi商城官网是哪个?
Python如何创建带属性的XML节点
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
如何快速生成橙子建站落地页链接?
jQuery 常见小例汇总
北京专业网站制作设计师招聘,北京白云观官方网站?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
建站之星展会模板:智能建站与自助搭建高效解决方案
北京网站制作公司哪家好一点,北京租房网站有哪些?
内部网站制作流程,如何建立公司内部网站?
建站之星导航如何优化提升用户体验?
常州企业网站制作公司,全国继续教育网怎么登录?
如何快速辨别茅台真假?关键步骤解析
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
*请认真填写需求信息,我们会在24小时内与您取得联系。