在 Ubuntu 上部署 Docker,强烈建议使用官方提供的“新版”(即通过官方 Docker 仓库安装的最新稳定版),而不是依赖 Ubuntu 软件源中自带的旧版。
以下是详细的对比分析和推荐方案:
为什么推荐“新版”(官方源)?
-
版本时效性
- Ubuntu 自带源 (
apt install docker.io):通常只包含 Ubuntu 发布时打包的版本。由于 Ubuntu 的更新周期较长,这个版本往往滞后于 Docker 社区的最新稳定版数月甚至更久,可能缺失新功能或存在已知的旧 Bug。 - 官方源 (
apt install docker-ce):Docker 官方维护的软件仓库会紧跟社区节奏,提供最新的 Stable、Test 或 Nightly 版本,确保你能获得最新的安全补丁和功能特性。
- Ubuntu 自带源 (
-
架构与组件完整性
- 官方安装的
docker-ce(Community Edition) 是完整的 Docker 引擎,包含容器运行时、镜像管理、网络插件等核心组件。 - Ubuntu 自带源中的
docker.io包在某些旧版本中可能存在组件缺失或配置不标准的情况(例如默认使用libcontainerd而非最新的containerd)。
- 官方安装的
-
安全性与维护
- 官方源由 Docker Inc. 直接维护,安全更新响应更快。
- Ubuntu 源的维护者可能无法及时跟进 Docker 的快速迭代,导致潜在的安全风险。
-
未来兼容性
- 随着 Kubernetes 和云原生生态的发展,较新的 Docker 版本对 Linux 内核特性(如 cgroups v2)的支持更好。使用旧版可能会导致在新版操作系统或新硬件上出现兼容性问题。
如何正确安装新版 Docker?
请在终端执行以下标准步骤,将自动添加官方仓库并安装最新版:
第一步:卸载旧版本(如果已安装)
如果你之前用过 Ubuntu 自带的 docker.io,建议先清理,避免冲突:
sudo apt-get remove docker docker-engine docker.io containerd runc
第二步:设置官方存储库
# 1. 更新包索引
sudo apt update
# 2. 安装必要的依赖工具
sudo apt install -y ca-certificates curl gnupg lsb-release
# 3. 添加 Docker 官方的 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 4. 设置存储库
echo
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
第三步:安装 Docker Engine
# 再次更新索引以识别新仓库
sudo apt update
# 安装 Docker CE, CLI 和 Containerd
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
第四步:验证安装
# 检查版本号(应显示为较新的数字,如 24.x 或 25.x)
docker --version
# 运行测试容器
sudo docker run hello-world
第五步:(可选)配置免 sudo 权限
为了避免每次运行 docker 命令都要输密码,可以将当前用户加入 docker 组:
sudo usermod -aG docker $USER
# 注意:需要重新登录或运行 newgrp docker 使组权限生效
特殊情况说明
只有在以下极少数情况下,才考虑使用 Ubuntu 自带源(docker.io):
- 你的服务器处于完全离线环境,且无法连接网络下载官方源。
- 你有极其严格的合规要求,必须锁定特定版本的软件包,且该版本恰好被 Ubuntu 官方源收录(但这通常意味着你主动选择了旧版)。
结论:除非有特殊限制,否则请始终选择通过官方源安装的新版 Docker。
CLOUD云枢