执行sudo services docker start报错:Unit docker.service not found的排查与解决咨询
问题原因及解决办法
原因1:命令输入笔误
你执行的命令是sudo services docker start,这里存在错误——正确的命令应为单数形式的service,或者使用更通用的systemctl命令:
sudo service docker start # 或 sudo systemctl start docker
先尝试修正命令后重新启动服务。
原因2:Docker未注册为systemd服务单元
手动安装Docker时,若未正确配置systemd服务文件,系统会找不到docker.service单元,按以下步骤修复:
- 先确认是否存在Docker服务单元:
若无任何输出,说明服务单元未配置。systemctl list-unit-files | grep docker - 创建systemd服务文件:
将以下基础配置粘贴进去(适配多数Linux发行版):sudo nano /etc/systemd/system/docker.service[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ExecReload=/bin/kill -s HUP $MAINPID TimeoutSec=0 RestartSec=2 Restart=always [Install] WantedBy=multi-user.target - 重新加载systemd配置:
sudo systemctl daemon-reload - 启动并设置开机自启:
sudo systemctl start docker sudo systemctl enable docker
原因3:Docker安装不完整或PATH未配置
如果执行docker --version无版本输出,说明手动安装的Docker未添加到系统PATH,或安装文件缺失:
- 找到手动安装Docker的目录,将其
bin路径添加到系统PATH,比如编辑~/.bashrc:echo 'export PATH=/path/to/docker/bin:$PATH' >> ~/.bashrc source ~/.bashrc - 若安装文件损坏,建议重新按照参考手册的步骤重新安装Docker,务必完成服务注册环节。
关于异常退出的影响
非规范退出Docker一般不会直接导致服务单元丢失,若启动后仍有异常,可清理残留进程文件:
sudo rm -rf /var/run/docker.pid sudo systemctl restart docker
内容的提问来源于stack exchange,提问作者Radin Zahedi
相关产品推荐
相关产品推荐

