Failed to restart docker.service: Unit docker.service not found.
时间: 2025-07-15 15:39:25 浏览: 4
当用户尝试重启 Docker 服务时遇到 `Failed to restart docker.service, Unit docker.service not found` 错误,通常表明系统无法找到与 Docker 服务相关的单元文件。该问题可能由多种原因引起,并可通过以下方式进行排查和修复。
### 1. 检查 Docker 是否已正确安装
如果 Docker 没有正确安装或安装过程中出现问题,可能导致 `docker.service` 文件缺失。可以通过以下命令检查 Docker 是否安装成功:
```bash
docker --version
```
如果命令未返回 Docker 的版本信息,则需要重新安装 Docker。根据 Linux 发行版的不同,可以使用如下方式安装:
- **Debian/Ubuntu**:
```bash
sudo apt update
sudo apt install docker.io
```
- **CentOS/RHEL**:
```bash
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker
```
安装完成后,确保服务文件 `docker.service` 存在于 `/lib/systemd/system/` 或 `/etc/systemd/system/` 目录中[^2]。
### 2. 重建或恢复 `docker.service` 文件
如果确认 Docker 已安装但仍然找不到服务文件,则可能是服务文件被意外删除或损坏。可以尝试通过重新安装 Docker 来恢复服务文件:
```bash
sudo apt purge docker docker-engine docker.io containerd runc
sudo apt install docker.io
```
或者在 CentOS 上:
```bash
sudo yum remove docker
sudo yum install docker
```
此过程会卸载并重新安装 Docker,从而恢复缺失的配置文件。
### 3. 手动创建 `docker.service` 文件(高级)
如果无法重新安装 Docker,也可以手动创建服务文件。以下是标准的 `docker.service` 文件内容示例:
```ini
[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
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2s
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
```
将上述内容保存为 `/lib/systemd/system/docker.service`,然后重新加载 systemd 配置:
```bash
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl start docker
```
确保路径和文件名准确无误,并且内容与实际环境匹配[^1]。
### 4. 检查 Docker 守护进程配置
如果存在自定义的守护进程配置文件(如 `/etc/docker/daemon.json`),并且配置错误也可能导致服务启动失败。可以通过以下命令检查配置文件语法是否正确:
```bash
sudo dockerd --configtest
```
如果提示错误,应根据输出信息修改配置文件。例如,一个常见的问题是不正确的镜像仓库地址或格式错误的 JSON 结构[^3]。
### 5. 系统环境问题
某些情况下,系统环境本身可能导致服务管理器无法识别 Docker 服务。例如,如果使用的是容器化环境或轻量级发行版(如 Alpine Linux),可能需要额外的步骤来启用服务管理功能。确保 `systemd` 正常运行,并且没有其他冲突的服务管理工具干扰[^4]。
---
阅读全文
相关推荐

















