在 Ubuntu 上部署 Docker,强烈建议使用官方仓库提供的“新版”(即最新稳定版),除非你有非常明确的特定兼容性需求。
以下是详细的决策分析和建议:
1. 为什么首选“新版”?
- 安全性(最重要):Docker 作为容器运行时,涉及系统内核的隔离机制。旧版本往往包含已知的安全漏洞(CVE),官方会持续发布补丁修复这些问题。使用新版能最大程度保障生产环境或测试环境的安全。
- 性能与功能:新版 Docker 通常包含对 Linux 内核新特性的支持、更高效的资源调度、更好的网络插件(如 CNI)以及更快的启动速度。如果你需要使用 Kubernetes 等现代编排工具,它们通常要求较新的 Docker 版本。
- 镜像兼容性:由于容器镜像标准的演进(如 OCI 标准),新版 Docker 对新格式镜像的支持更好。老旧版本的 Docker 有时无法拉取或运行某些最新的官方镜像。
- 维护周期:Ubuntu 自带的
apt仓库中的 Docker 版本通常比较陈旧(为了追求系统稳定性而保守更新)。如果依赖这个源,你可能需要等待数月才能收到更新。
2. 什么时候才考虑“旧版”?
只有在以下极少数情况下,才建议锁定特定旧版本:
- 遗留应用依赖:你的业务代码或某个特定的第三方软件严格依赖旧版 Docker API 或旧版运行时特性,且在新版中出现了不兼容的破坏性变更(Breaking Changes)。
- CI/CD 环境一致性:如果你的构建服务器强制要求所有节点版本完全一致,且该团队长期稳定在某个旧版本上,为了避免升级带来的意外风险,可以暂时维持现状(但需尽快规划迁移)。
3. 如何正确安装新版 Docker?
不要直接使用 Ubuntu 默认的 sudo apt install docker.io,因为那个版本通常滞后。
推荐做法:使用 Docker 官方提供的 APT 仓库进行安装,这样能确保你始终获得最新的稳定版。
安装步骤简述:
-
卸载旧版本(如果有):
sudo apt-get remove docker docker-engine docker.io containerd runc -
设置官方仓库:
# 更新包索引并安装必要依赖 sudo apt-get update sudo apt-get install ca-certificates curl gnupg lsb-release # 添加 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 # 设置稳定版存储库 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 -
安装最新版:
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
验证安装:
docker version docker run hello-world
总结
对于绝大多数场景(开发、测试、生产),请直接安装并使用 Docker 官方源的最新稳定版。
如果你不确定是否需要特定版本,可以先尝试安装最新版,并在沙箱环境中测试你的核心业务逻辑。只有当发现明确的不兼容报错时,再考虑降级到特定的旧版本。
轻量云Cloud