Ubuntu 22.04 安装 Docker 完整步骤(附镜像加速配置)
Ubuntu 22.04 安装 Docker 完整步骤(附镜像加速配置)
摘要
Docker 作为容器化技术的核心工具,凭借轻量、可移植、隔离性强的特性,已成为开发者部署应用、运维人员管理服务的必备工具。Ubuntu 22.04 LTS 作为长期支持版本,具备稳定、兼容的优势,是 Docker 部署的优选系统。本文将从环境准备、Docker 核心组件安装、配置验证、镜像加速优化、常见问题排查五个维度,提供详细且可复现的完整步骤,包含规范代码段、操作流程图解及实用技巧,同时规避 Ubuntu 22.04 系统下的安装陷阱,帮助新手快速上手 Docker 部署,助力开发者提升应用交付效率。无论是个人开发测试场景,还是小型生产环境部署,都能通过本文内容实现 Docker 的快速落地与优化。
🚀 个人主页 :有点流鼻涕 · ZEEKLOG
💬 座右铭 :“向光而行,沐光而生。”
- Ubuntu 22.04 安装 Docker 完整步骤(附镜像加速配置)
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)whoami2.2 系统更新与升级
更新系统软件包索引,升级已安装的软件包至最新版本,修复系统潜在漏洞,确保依赖库版本兼容。
# 更新软件包索引apt update # 升级已安装软件包(按提示输入 Y 确认)apt upgrade -y# 清理无用依赖包(可选,释放磁盘空间)apt autoremove -yapt clean 2.3 安装必要依赖包
安装 Docker 所需的依赖包,包括 apt 传输加密、CA 证书、软件源管理工具等,确保能通过 HTTPS 访问 Docker 官方源。
aptinstall-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 -ydocker 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 核心组件(最新稳定版)aptinstall-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 -p80:80 nginx # 查看运行中的容器dockerps# 查看所有容器(包含已停止的)dockerps-a# 停止容器docker stop my-nginx # 启动已停止的容器docker start my-nginx # 重启容器docker restart my-nginx # 删除容器(需先停止容器,强制删除加 -f 参数)dockerrm my-nginx dockerrm-f my-nginx # 强制删除运行中的容器# 进入容器内部(交互式终端)dockerexec-it my-nginx /bin/bash 4.3 Docker 版本与信息查看
# 查看 Docker 版本信息docker--versiondocker version # 详细版本信息(客户端与守护进程)# 查看 Docker 系统信息(包含镜像、容器数量,运行时等)docker info 5. 镜像加速配置:解决国内拉取镜像缓慢问题
由于 Docker 官方镜像仓库(Docker Hub)位于海外,国内用户直接拉取镜像时,常出现速度缓慢、超时失败等问题。通过配置国内镜像加速器,可大幅提升镜像拉取速度,常用的国内加速器包括阿里云、网易云、Docker 中国官方镜像等。本文以阿里云镜像加速器为例,提供详细配置步骤,同时补充其他加速器备选方案。
5.1 阿里云镜像加速器配置(推荐)
阿里云镜像加速器为国内用户提供免费的镜像加速服务,需先注册阿里云账号并获取专属加速地址。
5.1.1 获取阿里云专属加速地址
- 访问阿里云官网(https://www.aliyun.com/),注册并登录账号;
- 搜索“容器镜像服务 ACR”,进入控制台;
- 在左侧导航栏选择“镜像工具”→“镜像加速器”,即可获取专属加速地址(如 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 docker5.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 enabledocker# 取消 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-aGdocker$USER# 注销当前用户并重新登录(使权限生效)logout# 重新登录后,验证权限(无需 sudo 即可运行 docker 命令)dockerps7.3 问题3:镜像加速配置后,拉取镜像仍缓慢或超时
可能原因:加速地址失效、网络环境限制、Docker 配置未生效。
解决方案:
- 更换其他国内镜像加速器(如网易云、华为云);
- 重新加载配置并重启 Docker 服务:
systemctl daemon-reload systemctl restart docker- 检查网络连接,确保能正常访问加速地址(可通过 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 docker8. 操作流程图解
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),实现容器的自动化部署、扩展与运维。