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

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

摘要

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

🚀 个人主页有点流鼻涕 · CSDN

💬 座右铭 : "向光而行,沐光而生。"

  • [Ubuntu 22.04 安装 Docker 完整步骤(附镜像加速配置)](#Ubuntu 22.04 安装 Docker 完整步骤(附镜像加速配置))
    • 摘要
    • [1. 引言:Docker 与 Ubuntu 22.04 适配性说明](#1. 引言:Docker 与 Ubuntu 22.04 适配性说明)
    • [2. 环境准备:Ubuntu 22.04 系统前置配置](#2. 环境准备:Ubuntu 22.04 系统前置配置)
      • [2.1 切换至 root 用户(可选,推荐)](#2.1 切换至 root 用户(可选,推荐))
      • [2.2 系统更新与升级](#2.2 系统更新与升级)
      • [2.3 安装必要依赖包](#2.3 安装必要依赖包)
      • [2.4 清理旧版本 Docker(若已安装)](#2.4 清理旧版本 Docker(若已安装))
    • [3. Docker 安装:官方推荐步骤(分组件详解)](#3. Docker 安装:官方推荐步骤(分组件详解))
      • [3.1 添加 Docker 官方 GPG 密钥](#3.1 添加 Docker 官方 GPG 密钥)
      • [3.2 添加 Docker 官方软件源](#3.2 添加 Docker 官方软件源)
      • [3.3 安装 Docker Engine 与相关组件](#3.3 安装 Docker Engine 与相关组件)
      • [3.4 验证 Docker 安装是否成功](#3.4 验证 Docker 安装是否成功)
    • [4. Docker 基础操作与验证](#4. Docker 基础操作与验证)
      • [4.1 镜像管理命令](#4.1 镜像管理命令)
      • [4.2 容器管理命令](#4.2 容器管理命令)
      • [4.3 Docker 版本与信息查看](#4.3 Docker 版本与信息查看)
    • [5. 镜像加速配置:解决国内拉取镜像缓慢问题](#5. 镜像加速配置:解决国内拉取镜像缓慢问题)
      • [5.1 阿里云镜像加速器配置(推荐)](#5.1 阿里云镜像加速器配置(推荐))
        • [5.1.1 获取阿里云专属加速地址](#5.1.1 获取阿里云专属加速地址)
        • [5.1.2 配置镜像加速器](#5.1.2 配置镜像加速器)
      • [5.2 其他国内镜像加速器备选方案](#5.2 其他国内镜像加速器备选方案)
      • [5.3 验证镜像加速是否生效](#5.3 验证镜像加速是否生效)
    • [6. Docker 服务管理与开机自启配置](#6. Docker 服务管理与开机自启配置)
    • [7. 常见问题与解决方案](#7. 常见问题与解决方案)
      • [7.1 问题1:添加 Docker 源后,apt update 报错 "GPG 错误"](#7.1 问题1:添加 Docker 源后,apt update 报错 “GPG 错误”)
      • [7.2 问题2:运行 docker 命令时,提示 "Permission denied" 权限不足](#7.2 问题2:运行 docker 命令时,提示 “Permission denied” 权限不足)
      • [7.3 问题3:镜像加速配置后,拉取镜像仍缓慢或超时](#7.3 问题3:镜像加速配置后,拉取镜像仍缓慢或超时)
      • [7.4 问题4:Docker 服务启动失败,提示 "containerd 服务未运行"](#7.4 问题4:Docker 服务启动失败,提示 “containerd 服务未运行”)
    • [8. 操作流程图解](#8. 操作流程图解)
      • [8.1 Ubuntu 22.04 安装 Docker 完整流程图](#8.1 Ubuntu 22.04 安装 Docker 完整流程图)
      • [8.2 Docker 镜像拉取流程(含加速配置)](#8.2 Docker 镜像拉取流程(含加速配置))
    • [9. 总结与拓展建议](#9. 总结与拓展建议)
      • [9.1 核心总结](#9.1 核心总结)
      • [9.2 拓展建议](#9.2 拓展建议)
    • [10. 相关资源链接](#10. 相关资源链接)

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 权限。

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

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

2.2 系统更新与升级

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

bash 复制代码
# 更新软件包索引
apt update

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

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

2.3 安装必要依赖包

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

bash 复制代码
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 版本较旧,不推荐使用,建议卸载后通过官方源安装最新版。

bash 复制代码
# 卸载旧版本 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 密钥并添加至系统信任列表,确保后续从官方源获取的软件包未被篡改。

bash 复制代码
# 下载 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。

bash 复制代码
# 添加 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 等核心组件。

bash 复制代码
# 更新软件包索引(包含 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 是否能正常工作。

bash 复制代码
# 启动 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 镜像管理命令

bash 复制代码
# 拉取镜像(以 nginx 为例)
docker pull nginx

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

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

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

4.2 容器管理命令

bash 复制代码
# 创建并运行容器(以 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 版本与信息查看

bash 复制代码
# 查看 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 配置文件,添加镜像加速地址。

bash 复制代码
# 创建 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 文件中添加多个地址,示例如下:

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

5.3 验证镜像加速是否生效

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

bash 复制代码
# 查看 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 开机自启,同时掌握服务启停、状态查看等管理命令,便于日常运维。

bash 复制代码
# 查看 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

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

bash 复制代码
# 重启系统
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 密钥,确保密钥正确。

bash 复制代码
# 重新下载并导入 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 用户操作。

bash 复制代码
# 将当前用户添加至 docker 组
usermod -aG docker $USER

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

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

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

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

解决方案

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

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

bash 复制代码
systemctl daemon-reload
systemctl restart docker
  1. 检查网络连接,确保能正常访问加速地址(可通过 curl 测试):
bash 复制代码
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 服务。

bash 复制代码
# 启动 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 官方文档(容器相关)

相关推荐
郝亚军15 小时前
ubuntu-18.04.6-desktop-amd64安装步骤
linux·运维·ubuntu
Konwledging15 小时前
kernel-devel_kernel-headers_libmodules
linux
Web极客码15 小时前
CentOS 7.x如何快速升级到CentOS 7.9
linux·运维·centos
一位赵16 小时前
小练2 选择题
linux·运维·windows
代码游侠16 小时前
学习笔记——Linux字符设备驱动开发
linux·arm开发·驱动开发·单片机·嵌入式硬件·学习·算法
Lw老王要学习17 小时前
CentOS 7.9达梦数据库安装全流程解析
linux·运维·数据库·centos·达梦
CRUD酱17 小时前
CentOS的yum仓库失效问题解决(换镜像源)
linux·运维·服务器·centos
zly350017 小时前
VMware vCenter Converter Standalone 转换Linux系统,出现两个磁盘的处理
linux·运维·服务器
H Journey18 小时前
Docker Swarm集群管理
docker·集群管理·swarm
Albert Edison18 小时前
【Python】函数
java·linux·python·pip