在 Ubuntu 上部署 Docker,强烈建议使用新版(官方源安装的最新版),除非你有非常特殊的遗留系统兼容性需求。
以下是详细的决策分析和建议:
为什么首选“新版”?
-
安全性与稳定性
- 漏洞修复:Docker 团队会定期发布安全补丁。旧版(尤其是 EOL 版本)可能包含已知的安全漏洞,直接暴露在公网或内网中存在风险。
- 内核特性支持:新版 Docker 能更好地利用 Linux 内核的新特性(如 cgroup v2、新的命名空间隔离等),从而提升性能和资源隔离的可靠性。
-
功能与生态兼容性
- 新镜像支持:许多现代应用(如基于 Go 1.20+ 编译的应用、最新的 Node.js 环境、Kubernetes 新版本组件)可能依赖较新的 Docker API 或容器运行时特性,旧版 Docker 可能无法运行这些镜像。
- Docker Compose & CLI:新版通常集成了更完善的
docker compose(v2) 功能,命令行为和插件支持也更好。
-
Ubuntu 软件源的现状
- Ubuntu 默认的
apt仓库中的 Docker 版本往往滞后于官方发布。如果你直接安装系统自带的包,可能会得到一个几个月前的旧版本。 - 最佳实践:使用 Docker 官方提供的 Apt 仓库 进行安装,这样可以确保你获取到的是当前最新的稳定版(Stable Channel)。
- Ubuntu 默认的
什么时候才考虑“旧版”?
只有在以下极少数情况下,才建议锁定旧版本:
- 生产环境极度保守:你的业务对某个特定版本的 Docker 有强依赖,且经过严格测试,迁移成本极高或风险不可控。
- 老旧硬件/内核限制:服务器运行的 Linux 内核版本过老(例如 Ubuntu 14.04/16.04 上的旧内核),无法支持新版 Docker 所需的底层驱动。
- 第三方工具链限制:某些老旧的监控、编排或 CI/CD 工具尚未适配新版 Docker API。
✅ 推荐操作:如何安装最新版
不要在 Ubuntu 上直接使用 sudo apt install docker.io(这是旧版社区维护包)。请按照以下步骤通过官方源安装最新版:
1. 卸载旧版本(如果有)
sudo apt-get remove docker docker-engine docker.io containerd runc
2. 设置 Docker 官方 APT 仓库
# 更新索引并安装依赖
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
# 添加官方 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
# 设置存储库
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
3. 安装并验证
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 验证安装
docker --version
💡 额外建议
- 非 root 用户运行:为了避免每次都要加
sudo,安装后建议将当前用户加入 docker 组:sudo usermod -aG docker $USER # 退出重新登录使生效,或者执行 newgrp docker - 关注 LTS 版本:虽然 Docker 本身是最新版,但建议你的 Ubuntu 操作系统本身使用 LTS (Long Term Support) 版本(如 20.04, 22.04, 24.04),以获得长期的系统级安全支持。
结论:除非有明确的阻碍因素,否则请直接使用上述步骤安装官方源的最新版。
云服务器