Ubuntu 22.04 安装 Docker 完整步骤(附镜像加速配置)

摘要

Docker 作为容器化技术的核心工具,凭借轻量、可移植、隔离性强的特性,已成为开发者部署应用、运维人员管理服务的必备工具。Ubuntu 22.04 LTS 作为长期支持版本,具备稳定、兼容的优势,是 Docker 部署的优选系统。本文将从环境准备、Docker 核心组件安装、配置验证、镜像加速优化、常见问题排查五个维度,提供详细且可复现的完整步骤,包含规范代码段、操作流程图解及实用技巧,同时规避 Ubuntu 22.04 系统下的安装陷阱,帮助新手快速上手 Docker 部署,助力开发者提升应用交付效率。无论是个人开发测试场景,还是小型生产环境部署,都能通过本文内容实现 Docker 的快速落地与优化。

在这里插入图片描述
🚀 个人主页有点流鼻涕 · CSDN
💬 座右铭“向光而行,沐光而生。”

在这里插入图片描述

1. 引言:Docker 与 Ubuntu 22.04 适配性说明

Docker 采用客户端-服务器(C/S)架构,核心组件包括 Docker Client(客户端)、Docker Daemon(守护进程)、Docker Image(镜像)、Docker Container(容器)等。Ubuntu 22.04 LTS(Jammy Jellyfish)作为 2022 年发布的长期支持版本,官方对其提供至 2027 年的安全更新与维护,与 Docker 最新稳定版(Docker Engine - Community)具备完美适配性,无需额外修改系统内核参数即可正常运行。

相较于旧版本 Ubuntu 系统,Ubuntu 22.04 内置的内核版本(5.15.x)已原生支持 Docker 所需的容器化特性,无需手动升级内核;同时,系统默认的软件源与 Docker 官方源兼容性更强,可有效减少安装过程中的依赖冲突问题。本文将严格遵循 Docker 官方安装指南,结合 Ubuntu 22.04 系统特性,提供最可靠的安装流程,同时补充国内用户必备的镜像加速配置,解决官方镜像拉取缓慢、超时等痛点。

2. 环境准备:Ubuntu 22.04 系统前置配置

在安装 Docker 前,需完成系统更新、依赖安装、旧版本清理等前置操作,确保安装环境纯净、稳定,避免后续出现兼容性问题。

2.1 切换至 root 用户(可选,推荐)

为避免频繁使用 sudo 命令导致权限问题,建议切换至 root 用户操作,或确保当前用户具备 sudo 权限。


# 切换至 root 用户(输入当前用户密码)
sudo -i

# 验证是否切换成功(命令行前缀变为 root@xxx)
whoami

2.2 系统更新与升级

更新系统软件包索引,升级已安装的软件包至最新版本,修复系统潜在漏洞,确保依赖库版本兼容。


# 更新软件包索引
apt update

# 升级已安装软件包(按提示输入 Y 确认)
apt upgrade -y

# 清理无用依赖包(可选,释放磁盘空间)
apt autoremove -y
apt clean

2.3 安装必要依赖包

安装 Docker 所需的依赖包,包括 apt 传输加密、CA 证书、软件源管理工具等,确保能通过 HTTPS 访问 Docker 官方源。


apt install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

各依赖包作用说明:

  • apt-transport-https:允许 apt 通过 HTTPS 协议获取软件包;

  • ca-certificates:提供 CA 证书,确保 HTTPS 连接的安全性;

  • curl:用于下载 Docker 官方 GPG 密钥;

  • software-properties-common:提供添加、管理软件源的工具;

  • gnupg:用于验证软件包的签名,确保软件包完整性。

2.4 清理旧版本 Docker(若已安装)

若系统中已安装旧版本 Docker(如 docker、docker.io、docker-compose 等),需先卸载,避免与新版本冲突。Ubuntu 22.04 默认软件源中的 Docker 版本较旧,不推荐使用,建议卸载后通过官方源安装最新版。


# 卸载旧版本 Docker 及相关组件
apt remove -y docker docker-engine docker.io containerd runc docker-compose docker-compose-plugin

# 清理残留文件(确保环境纯净)
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

3. Docker 安装:官方推荐步骤(分组件详解)

本文采用 Docker 官方推荐的安装方式,通过添加 Docker 官方软件源,安装最新稳定版 Docker Engine - Community,同时安装 Docker Compose(容器编排工具),满足多容器部署需求。

3.1 添加 Docker 官方 GPG 密钥

下载 Docker 官方 GPG 密钥并添加至系统信任列表,确保后续从官方源获取的软件包未被篡改。


# 下载 Docker 官方 GPG 密钥并添加至 apt 信任密钥环
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 验证密钥(可选,确保密钥正确)
gpg --no-default-keyring --keyring /usr/share/keyrings/docker-archive-keyring.gpg --list-keys

验证成功后,会显示 Docker 官方密钥信息,包含密钥指纹、发布者等内容,确认无误后继续下一步。

3.2 添加 Docker 官方软件源

将 Docker 官方软件源添加至 Ubuntu 系统的软件源列表,后续通过 apt 命令即可安装最新版 Docker。


# 添加 Docker 官方源(适配 Ubuntu 22.04 系统,代号 jammy)
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" | tee /etc/apt/sources.list.d/docker.list > /dev/null

参数说明:

  • arch=$(dpkg --print-architecture):自动适配系统架构(如 x86_64、arm64 等);

  • signed-by:指定密钥文件路径,确保软件源验证通过;

  • $(lsb_release -cs):自动获取系统代号(Ubuntu 22.04 为 jammy);

  • stable:表示安装稳定版 Docker,如需测试版可改为 test。

3.3 安装 Docker Engine 与相关组件

更新软件包索引(使系统识别新增的 Docker 源),然后安装 Docker Engine、Containerd(容器运行时)、Docker Compose 等核心组件。


# 更新软件包索引(包含 Docker 官方源)
apt update

# 安装 Docker 核心组件(最新稳定版)
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

各组件作用:

  • docker-ce:Docker Engine 社区版,核心守护进程与工具;

  • docker-ce-cli:Docker 命令行客户端,用于与 Docker Daemon 交互;

  • containerd.io:高性能容器运行时,负责容器的创建、运行、销毁等生命周期管理;

  • docker-compose-plugin:Docker Compose 插件,支持通过 YAML 文件编排多容器应用。

3.4 验证 Docker 安装是否成功

安装完成后,启动 Docker 服务并运行官方测试镜像(hello-world),验证 Docker 是否能正常工作。


# 启动 Docker 服务
systemctl start docker

# 运行 hello-world 测试镜像(自动拉取镜像并创建容器)
docker run hello-world

若输出以下内容,说明 Docker 安装成功:

Hello from Docker!

This message shows that your installation appears to be working correctly.

该信息表示 Docker 成功拉取 hello-world 镜像,创建并运行容器,容器执行完成后自动退出,验证了 Docker 客户端、守护进程、镜像仓库交互等功能均正常。

4. Docker 基础操作与验证

掌握 Docker 基础操作,可快速管理镜像、容器、服务,以下为常用命令及示例,帮助新手快速上手。

4.1 镜像管理命令


# 拉取镜像(以 nginx 为例)
docker pull nginx

# 查看本地已拉取的镜像
docker images

# 删除指定镜像(通过镜像ID或名称)
docker rmi nginx:latest  # 按名称删除
docker rmi 1234567890ab  # 按镜像ID删除

# 搜索镜像(从 Docker Hub 搜索)
docker search mysql

4.2 容器管理命令


# 创建并运行容器(以 nginx 为例,后台运行,映射端口 80:80)
docker run -d --name my-nginx -p 80:80 nginx

# 查看运行中的容器
docker ps

# 查看所有容器(包含已停止的)
docker ps -a

# 停止容器
docker stop my-nginx

# 启动已停止的容器
docker start my-nginx

# 重启容器
docker restart my-nginx

# 删除容器(需先停止容器,强制删除加 -f 参数)
docker rm my-nginx
docker rm -f my-nginx  # 强制删除运行中的容器

# 进入容器内部(交互式终端)
docker exec -it my-nginx /bin/bash

4.3 Docker 版本与信息查看


# 查看 Docker 版本信息
docker --version
docker version  # 详细版本信息(客户端与守护进程)

# 查看 Docker 系统信息(包含镜像、容器数量,运行时等)
docker info

5. 镜像加速配置:解决国内拉取镜像缓慢问题

由于 Docker 官方镜像仓库(Docker Hub)位于海外,国内用户直接拉取镜像时,常出现速度缓慢、超时失败等问题。通过配置国内镜像加速器,可大幅提升镜像拉取速度,常用的国内加速器包括阿里云、网易云、Docker 中国官方镜像等。本文以阿里云镜像加速器为例,提供详细配置步骤,同时补充其他加速器备选方案。

5.1 阿里云镜像加速器配置(推荐)

阿里云镜像加速器为国内用户提供免费的镜像加速服务,需先注册阿里云账号并获取专属加速地址。

5.1.1 获取阿里云专属加速地址
  1. 访问阿里云官网(https://www.aliyun.com/),注册并登录账号;

  2. 搜索“容器镜像服务 ACR”,进入控制台;

  3. 在左侧导航栏选择“镜像工具”→“镜像加速器”,即可获取专属加速地址(如 https://xxx.mirror.aliyuncs.com),不同账号的加速地址不同。

5.1.2 配置镜像加速器

创建 Docker 配置目录,编写 daemon.json 配置文件,添加镜像加速地址。


# 创建 Docker 配置目录(若不存在)
mkdir -p /etc/docker

# 编写镜像加速配置文件(替换为自己的阿里云加速地址)
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
EOF

# 重新加载 Docker 配置文件
systemctl daemon-reload

# 重启 Docker 服务(使配置生效)
systemctl restart docker

5.2 其他国内镜像加速器备选方案

若无法获取阿里云加速地址,可使用以下免费镜像加速器:

  • 网易云镜像加速器:https://hub-mirror.c.163.com

  • Docker 中国官方镜像(已停止维护,仅作备选):https://registry.docker-cn.com

  • 华为云镜像加速器:https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com(需注册华为云账号)

配置多个加速器时,可在 daemon.json 文件中添加多个地址,示例如下:


{
  "registry-mirrors": [
    "https://xxx.mirror.aliyuncs.com",
    "https://hub-mirror.c.163.com"
  ]
}

5.3 验证镜像加速是否生效

重启 Docker 服务后,通过 docker info 命令查看配置是否生效,若输出中包含配置的镜像加速器地址,说明配置成功。


# 查看 Docker 信息,验证镜像加速配置
docker info | grep "Registry Mirrors"

输出结果如下(显示配置的加速地址):

Registry Mirrors:

https://xxx.mirror.aliyuncs.com/

https://hub-mirror.c.163.com/

此时拉取镜像(如 docker pull nginx),速度会显著提升,避免超时问题。

6. Docker 服务管理与开机自启配置

为确保 Docker 服务在系统重启后自动运行,需配置 Docker 开机自启,同时掌握服务启停、状态查看等管理命令,便于日常运维。


# 查看 Docker 服务状态
systemctl status docker

# 启动 Docker 服务
systemctl start docker

# 停止 Docker 服务
systemctl stop docker

# 重启 Docker 服务
systemctl restart docker

# 配置 Docker 开机自启
systemctl enable docker

# 取消 Docker 开机自启
systemctl disable docker

# 查看 Docker 服务开机自启状态
systemctl is-enabled docker

配置开机自启后,可通过重启系统验证是否生效:


# 重启系统
reboot

# 重启后查看 Docker 服务是否自动运行
systemctl status docker

若服务状态显示为 active (running),说明开机自启配置成功。

7. 常见问题与解决方案

在 Ubuntu 22.04 安装 Docker 过程中,可能遇到依赖冲突、权限不足、镜像拉取失败等问题,以下为常见问题及针对性解决方案,帮助快速排查故障。

7.1 问题1:添加 Docker 源后,apt update 报错 “GPG 错误”

报错信息:W: GPG error: https://download.docker.com/linux/ubuntu jammy InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY XXXXXXXX

解决方案:重新导入 Docker 官方 GPG 密钥,确保密钥正确。


# 重新下载并导入 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 再次更新软件包索引
apt update

7.2 问题2:运行 docker 命令时,提示 “Permission denied” 权限不足

报错信息:Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: …

解决方案:将当前用户添加至 docker 用户组,避免使用 root 用户操作。


# 将当前用户添加至 docker 组
usermod -aG docker $USER

# 注销当前用户并重新登录(使权限生效)
logout

# 重新登录后,验证权限(无需 sudo 即可运行 docker 命令)
docker ps

7.3 问题3:镜像加速配置后,拉取镜像仍缓慢或超时

可能原因:加速地址失效、网络环境限制、Docker 配置未生效。

解决方案

  1. 更换其他国内镜像加速器(如网易云、华为云);

  2. 重新加载配置并重启 Docker 服务:


systemctl daemon-reload
systemctl restart docker
  1. 检查网络连接,确保能正常访问加速地址(可通过 curl 测试):

curl https://hub-mirror.c.163.com

7.4 问题4:Docker 服务启动失败,提示 “containerd 服务未运行”

报错信息:Job for docker.service failed because the control process exited with error code.

解决方案:启动 containerd 服务并配置开机自启,再重启 Docker 服务。


# 启动 containerd 服务
systemctl start containerd

# 配置 containerd 开机自启
systemctl enable containerd

# 重启 Docker 服务
systemctl restart docker

# 查看 Docker 服务状态
systemctl status docker

8. 操作流程图解

8.1 Ubuntu 22.04 安装 Docker 完整流程图

开始

环境准备

切换 root 用户/确认 sudo 权限

系统更新与升级:apt update && apt upgrade -y

安装必要依赖包

清理旧版本 Docker(若有)

安装 Docker 核心组件

下载 Docker 官方 GPG 密钥

添加 Docker 官方软件源

更新索引并安装 Docker 组件

验证安装

启动 Docker 服务:systemctl start docker

运行 hello-world 镜像:docker run hello-world

安装成功?

排查问题(参考常见问题章节)

配置镜像加速

获取国内镜像加速地址

编写 daemon.json 配置文件

重载配置并重启 Docker

验证加速配置生效

配置开机自启

完成,开始使用 Docker

8.2 Docker 镜像拉取流程(含加速配置)

网络超时

镜像不存在

权限问题

发起镜像拉取命令:docker pull 镜像名

Docker 客户端解析命令

是否配置镜像加速器?

从配置的国内加速器拉取镜像

直接从 Docker Hub 拉取镜像

拉取成功?

镜像存储至本地仓库,供容器使用

问题类型?

更换镜像加速器,重试拉取

检查镜像名称与标签是否正确

确认用户是否在 docker 组,或使用 sudo

9. 总结与拓展建议

9.1 核心总结

本文详细介绍了 Ubuntu 22.04 系统下 Docker 的完整安装流程,从环境准备、官方源安装、基础验证,到镜像加速配置、服务管理,覆盖了从部署到优化的全流程。关键要点如下:

  • Ubuntu 22.04 与 Docker 兼容性极佳,无需额外升级内核,按官方步骤安装即可稳定运行;

  • 安装前需清理旧版本 Docker 及残留文件,避免依赖冲突,确保环境纯净;

  • 国内用户必须配置镜像加速器,解决海外镜像拉取缓慢问题,推荐使用阿里云加速器;

  • 配置 Docker 开机自启,确保系统重启后服务自动恢复,适配生产环境需求。

9.2 拓展建议

完成 Docker 安装后,可进一步学习以下内容,提升容器化应用管理能力:

  • Docker Compose 实战:学习通过 docker-compose.yml 文件编排多容器应用(如 Nginx + MySQL + 后端服务),实现一键部署;

  • Docker 镜像制作:掌握 Dockerfile 编写方法,自定义应用镜像,优化镜像体积与安全性;

  • 容器网络与存储:了解 Docker 桥接网络、自定义网络配置,以及数据卷(Volume)使用,实现容器数据持久化;

  • 容器化部署实战:尝试将个人项目(如 Python、Java 应用)容器化,部署至 Ubuntu 22.04 系统,熟悉完整部署流程;

  • Kubernetes 入门:若需大规模容器集群管理,可进一步学习 Kubernetes(K8s),实现容器的自动化部署、扩展与运维。

10. 相关资源链接

  1. Docker 官方安装文档(Ubuntu 版)

  2. 阿里云镜像加速器官方指南

  3. Docker 官方文档(基础操作)

  4. Docker Compose 官方文档

  5. Ubuntu 22.04 官方文档(容器相关)

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐