You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu中Docker服务Active: failed修复及容器镜像恢复求助

问题描述

云服务器跨数据中心迁移后Docker运行异常,无法查看容器与镜像,具体现象如下:

  1. 执行sudo docker ps报错:
ubuntu@ubuntu-servername-server:~$ sudo docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
  1. 执行systemctl status docker显示服务启动失败:
ubuntu@ubuntu-gardooon-server:~$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Sat 2022-09-10 16:29:10 UTC; 2 days ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 35714 (code=exited, status=1/FAILURE)

Sep 10 16:29:08 ubuntu-gardooon-server systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
Sep 10 16:29:08 ubuntu-gardooon-server systemd[1]: docker.service: Failed with result 'exit-code'.
Sep 10 16:29:08 ubuntu-gardooon-server systemd[1]: Failed to start Docker Application Container Engine.
Sep 10 16:29:10 ubuntu-gardooon-server systemd[1]: docker.service: Scheduled restart job, restart counter >
Sep 10 16:29:10 ubuntu-gardooon-server systemd[1]: Stopped Docker Application Container Engine.
Sep 10 16:29:10 ubuntu-gardooon-server systemd[1]: docker.service: Start request repeated too quickly.
Sep 10 16:29:10 ubuntu-gardooon-server systemd[1]: docker.service: Failed with result 'exit-code'.
Sep 10 16:29:10 ubuntu-gardooon-server systemd[1]: Failed to start Docker Application Container Engine.
  1. 当前环境版本:
ubuntu@ubuntu-gardooon-server:~$ docker --version
Docker version 20.10.7, build 20.10.7-0ubuntu5~20.04.2
ubuntu@ubuntu-gardooon-server:~$ docker-compose --version
docker-compose version 1.29.2, build 5becea4c
  1. 已尝试操作:误删除/var/lib/docker目录,执行sudo apt install docker重装提示已是最新版本,但服务仍启动失败。

解决方案

一、容器与镜像恢复可能性

/var/lib/docker是Docker存储容器、镜像、卷等核心数据的目录,若删除后无备份,容器与镜像无法恢复。仅在以下场景可尝试恢复:

  • 镜像已推送到远程仓库:从仓库重新拉取
  • 有容器/镜像的本地备份文件(如docker export/docker save生成的包):导入恢复
  • 服务器迁移前有快照/完整备份:回滚快照后重新迁移

二、Docker服务修复与重建步骤

步骤1:彻底卸载现有Docker环境

普通重装无法覆盖残留配置,需彻底清理:

# 停止所有相关服务
sudo systemctl stop docker docker.socket containerd
# 卸载Docker组件
sudo apt purge -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 清理残留文件与目录
sudo rm -rf /var/lib/docker /var/lib/containerd /etc/docker
# 清理无用依赖
sudo apt autoremove -y && sudo apt clean

步骤2:重新安装指定版本Docker

适配Ubuntu 20.04环境安装20.10.7版本:

# 更新软件源
sudo apt update
# 安装依赖包
sudo apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加Docker软件源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新源并安装指定版本
sudo apt update
sudo apt install -y docker-ce=5:20.10.7~3-0~ubuntu-focal docker-ce-cli=5:20.10.7~3-0~ubuntu-focal containerd.io

步骤3:安装指定版本docker-compose

# 下载1.29.2版本二进制文件
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose --version

步骤4:启动并验证Docker服务

# 启动服务并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 检查服务状态
sudo systemctl status docker
# 验证Docker功能
sudo docker ps
sudo docker run hello-world

步骤5:恢复业务容器(若有备份)

  • 持有docker-compose.yml文件:进入文件目录执行sudo docker-compose up -d
  • 持有镜像备份包(.tar):执行sudo docker load -i 镜像备份文件.tar
  • 持有容器导出文件:执行sudo docker import 容器导出文件.tar 自定义镜像名,再基于镜像创建容器

内容的提问来源于stack exchange,提问作者farshid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 03:15:32