Ubuntu 22.04安装Docker完整教程
Docker 作为当今最流行的容器化技术,已成为现代软件开发和部署的重要工具。在 Ubuntu 22.04 LTS 系统上正确安装和配置 Docker,对于构建高效的开发环境至关重要。本教程基于 Docker 官方文档和 Ubuntu 官方指导,提供最新的安装步骤,并特别针对国内网络环境进行了优化,确保安装过程顺畅无阻。
教程概述
本教程将带你完成在 Ubuntu 22.04 LTS (Jammy Jellyfish) 上安装 Docker 和 Docker Compose 的完整过程。内容包括:
- 环境准备:系统要求检查和前置条件
- 官方安装:使用 Docker 官方源进行标准安装
- 国内优化:配置阿里云等国内镜像源加速下载
- 验证测试:确保安装成功并正常工作
- 进阶配置:非root用户配置和镜像加速器设置
- 问题解决:常见安装问题的解决方案
无论你是Docker新手还是有经验的开发者,本教程都将为你提供可靠的安装指导。
前提条件
- 系统:Ubuntu 22.04 LTS (Jammy Jellyfish),64 位版本
- 权限:需要 root 或 sudo 权限
- 网络:稳定的互联网连接,建议配置国内镜像源以加速下载
- 最低内核版本:3.10(Ubuntu 22.04 默认满足)
步骤 1:卸载旧版本 Docker
为避免冲突,先卸载可能存在的旧版本 Docker 或相关组件:
1 | sudo apt-get remove docker docker-engine docker.io containerd runc |
命令解释:
sudo apt-get remove:使用管理员权限删除指定的软件包docker:旧版本的 Docker 软件包docker-engine:旧版本的 Docker 引擎docker.io:Ubuntu 官方仓库中的 Docker 包(非官方最新版)containerd:容器运行时(将重新安装官方版本)runc:低级容器运行时(将重新安装官方版本)
sudo apt-get autoremove:自动清理不再需要的依赖包,释放磁盘空间
注意:即使系统中没有安装这些包,执行此命令也不会产生错误,确保环境干净。
步骤 2:安装必要的依赖
更新系统并安装必要软件包以支持 HTTPS 和 GPG 密钥:
1 | sudo apt update |
命令解释:
sudo apt update:更新软件包列表,从配置的源获取最新的包信息sudo apt upgrade -y:升级系统中已安装的所有软件包到最新版本-y:自动确认所有提示,无需手动输入 “yes”
sudo apt install -y:安装以下必需的软件包:apt-transport-https:允许 apt 通过 HTTPS 协议下载包ca-certificates:包含受信任的证书颁发机构证书,用于验证 HTTPS 连接curl:命令行下载工具,用于获取 GPG 密钥gnupg:GNU 隐私保护工具,用于处理 GPG 密钥和签名验证lsb-release:提供 Linux 标准库信息,用于自动检测系统版本
提示:这些软件包确保系统能够安全下载和验证 Docker 官方软件包。
步骤 3:添加 Docker 官方 GPG 密钥
导入 Docker 官方 GPG 密钥以验证软件包:
1 | sudo mkdir -p /etc/apt/keyrings |
命令解释:
sudo mkdir -p /etc/apt/keyrings:创建密钥存储目录curl -fsSL:下载文件的参数组合-f:静默模式,遇到错误时立即退出-s:静默模式,不显示进度条-S:显示错误信息-L:跟随重定向
https://download.docker.com/linux/ubuntu/gpg:Docker 官方 GPG 密钥的下载地址|:管道符,将 curl 的输出传递给下一个命令sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg:gpg --dearmor:将 ASCII 格式的 GPG 密钥转换为二进制格式-o /etc/apt/keyrings/docker.gpg:指定输出文件路径
sudo chmod a+r /etc/apt/keyrings/docker.gpg:设置文件权限,允许所有用户读取密钥文件
国内用户优化:如果访问 download.docker.com 较慢,可使用阿里云镜像源:
1 | curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg |
安全说明:GPG 密钥用于验证从 Docker 仓库下载的软件包的真实性,防止恶意软件包。
步骤 4:添加 Docker 软件源
将 Docker 官方软件源添加到系统(使用 Jammy 的稳定版仓库):
1 | echo \ |
命令解释:
echo \:输出文本,\表示换行继续deb [options] URL distribution component:Debian 软件源格式arch=$(dpkg --print-architecture):自动检测系统架构(如 amd64)signed-by=/etc/apt/keyrings/docker.gpg:指定用于验证的 GPG 密钥https://download.docker.com/linux/ubuntu:Docker 官方软件源 URLjammy:Ubuntu 22.04 的代号stable:使用稳定版分支
|:管道符,将 echo 输出传递给 tee 命令sudo tee /etc/apt/sources.list.d/docker.list:将内容写入 Docker 源列表文件> /dev/null:将 tee 的标准输出重定向到空设备,避免屏幕显示
国内用户优化:使用阿里云镜像源替代官方源:
1 | echo \ |
路径说明:
/etc/apt/sources.list.d/目录用于存放额外的软件源配置文件,避免修改主配置文件。
步骤 5:安装 Docker Engine 和相关组件
更新软件包索引并安装 Docker Engine、CLI、containerd 以及 Docker Compose 插件:
1 | sudo apt update |
命令解释:
sudo apt update:更新软件包索引,获取新添加的 Docker 软件源中的包信息sudo apt install -y:安装以下 Docker 相关组件:docker-ce:Docker Community Edition 引擎,Docker 的核心服务docker-ce-cli:Docker 命令行客户端,提供docker命令containerd.io:容器运行时,负责管理容器的生命周期docker-buildx-plugin:扩展构建功能的插件,支持多平台构建docker-compose-plugin:Docker Compose V2 插件,提供docker compose命令
版本说明:这里安装的是最新稳定版本,包含了完整的 Docker 功能和现代化的工具链。
步骤 6:验证 Docker 安装
启动 Docker 服务并设置开机自启:
1 | sudo systemctl start docker |
命令解释:
sudo systemctl start docker:立即启动 Docker 服务sudo systemctl enable docker:设置 Docker 服务开机自动启动
检查 Docker 是否安装成功:
1 | sudo docker --version |
命令解释:
sudo docker --version:显示 Docker 版本信息,确认安装成功sudo docker run hello-world:运行官方测试容器,验证 Docker 功能- 首次运行会自动下载
hello-world镜像 - 成功运行表示 Docker 引擎工作正常
- 首次运行会自动下载
预期输出:
- Docker 版本信息(如
Docker version 27.3.1) hello-world容器的欢迎信息,确认 Docker 正常工作
服务状态检查:可使用
sudo systemctl status docker查看 Docker 服务运行状态。
步骤 7:验证 Docker Compose 安装
验证 Docker Compose 插件安装:
1 | docker compose version |
命令解释:
docker compose version:显示 Docker Compose 插件版本信息- 注意使用空格分隔的
docker compose,而非连字符的docker-compose - 这是 Docker Compose V2 的标准调用方式
- 注意使用空格分隔的
预期输出:
- 如
Docker Compose version v2.30.3(版本号会随时间更新)
版本说明:
- V2 优势:性能更好,功能更强,与 Docker CLI 深度集成
- 命令格式:使用
docker compose而非旧版docker-compose - 兼容性:完全兼容现有的
docker-compose.yml文件
步骤 8:配置镜像加速(国内用户推荐)
国内访问 Docker Hub 可能较慢,建议配置镜像加速器:
编辑 Docker 配置文件:
1
2sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json添加以下内容:
1
2
3
4
5
6{
"registry-mirrors": [
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io"
]
}重启 Docker 服务:
1
2sudo systemctl daemon-reload
sudo systemctl restart docker验证加速器配置:
1
docker info | grep -A 5 "Registry Mirrors"
步骤 9:配置非 root 用户运行 Docker(可选)
默认情况下,Docker 命令需使用 sudo。若需以非 root 用户运行:
1 | sudo usermod -aG docker $USER |
验证配置:
1 | # 验证当前用户是否在 docker 组中 |
安全提示:添加用户到 docker 组等同于给予 root 权限,因为 Docker 守护进程以 root 身份运行。请仅在受信任的环境中使用此配置。
常见问题处理
网络超时问题:
- 现象:
apt update或curl命令超时失败 - 解决方案:检查网络连接或切换至国内镜像源
- 现象:
Docker 服务未启动:
1
2sudo systemctl status docker
sudo systemctl start docker权限问题:
- 现象:普通用户运行
docker命令提示 “permission denied” - 解决方案:确保以 root 或 sudo 权限执行命令,或按步骤 9 配置非 root 用户
- 现象:普通用户运行
总结
通过以上详细步骤,您已在 Ubuntu 22.04 LTS (Jammy Jellyfish) 上成功完成了 Docker 的完整安装和配置:
🎉 安装成果
- ✅ Docker Engine:最新稳定版本,支持完整的容器化功能
- ✅ Docker Compose V2:现代化的容器编排工具,性能更优
- ✅ 镜像加速:配置国内镜像源,显著提升镜像下载速度
- ✅ 用户权限:可选的非 root 用户配置,提升使用便利性
- ✅ 服务自启:Docker 服务开机自动启动,确保环境可用
现在您已拥有一个完整、高效的 Docker 开发环境,可以开始您的容器化之旅了!