在京东云(JD Cloud)的 Ubuntu 20.04 实例上安装 Docker,不推荐直接使用 Docker 官方一键脚本(curl -fsSL https://get.docker.com | sh)用于生产环境,但可谨慎用于快速验证或开发测试环境。以下是详细分析与推荐方案:
✅ 推荐做法(生产/稳定环境):
使用 Docker 官方 APT 仓库 + 系统包管理器安装(即 apt 方式),这是 Ubuntu 官方和 Docker 官方共同推荐的、最安全、可审计、易升级、兼容性最佳的方式。
✅ 推荐安装步骤(Ubuntu 20.04,京东云适用):
# 1. 更新系统并安装必要依赖
sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg lsb-release
# 2. 添加 Docker 官方 GPG 密钥(使用可信密钥服务器)
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 3. 添加稳定版官方仓库(注意:Ubuntu 20.04 代号为 focal)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu focal stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 4. 更新 APT 索引并安装 Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 5. 启动并启用服务
sudo systemctl enable docker
sudo systemctl start docker
# 6. (可选)将当前用户加入 docker 组,避免每次 sudo(需重新登录或执行 newgrp)
sudo usermod -aG docker $USER
# 注:执行后需退出终端重登,或运行 `newgrp docker` 生效
# 7. 验证安装
docker --version
sudo docker run hello-world # 首次运行需 sudo(若未加 docker 组)
⚠️ 为什么不推荐 get.docker.com 脚本?
- ❌ 缺乏审计与可控性:脚本自动下载、解析、执行,难以审查具体行为(如是否修改系统配置、添加第三方源等);
- ❌ 绕过包管理器:无法通过
apt upgrade统一管理更新,易造成版本碎片化; - ❌ 权限过高风险:脚本以 root 执行,存在潜在安全风险(尤其在不可信网络环境);
- ❌ 京东云特殊性:部分云平台(包括京东云)可能对内核模块、cgroup v2、SELinux/AppArmor 等有定制,官方 APT 包经过更充分的 Ubuntu 20.04 兼容性测试,而脚本可能跳过适配检查。
💡 京东云特别提示:
- Ubuntu 20.04 默认使用 cgroup v2,Docker 20.10+ 已原生支持,无需额外配置(旧版 Docker 可能需
systemd.unified_cgroup_hierarchy=0内核参数,但官方 APT 源已解决); - 京东云实例通常使用标准 Linux 内核(≥5.4),满足 Docker 运行要求;
- 如需容器镜像提速,可配置国内镜像源(如阿里云、中科大或京东云自建 registry),不影响安装方式选择。
✅ 补充建议(京东云生产环境):
- ✅ 启用
containerd(已随docker-ce自动安装); - ✅ 配置
/etc/docker/daemon.json使用镜像提速器(例如):{ "registry-mirrors": ["https://xxxx.mirror.jdcloud.com"] // 替换为京东云提供的镜像地址(如有),或使用公共镜像如 https://docker.mirrors.ustc.edu.cn }然后
sudo systemctl restart docker; - ✅ 定期
sudo apt update && sudo apt upgrade docker-ce*保持更新; - ✅ 生产环境建议使用
docker-compose的独立二进制安装(而非pip或旧版 apt 包),或直接使用docker compose plugin(已包含在上述安装中)。
✅ 总结:
| 方式 | 是否推荐 | 说明 |
|———————|———-|———————————-|
| 官方 APT 仓库安装 | ✅ 强烈推荐 | 安全、可控、可维护、符合 Ubuntu 最佳实践 |
| get.docker.com 脚本 | ⚠️ 仅限临时/测试 | 快速体验可用,但不建议用于京东云生产环境 |
如需进一步自动化(如 Terraform/Ansible 部署),也应基于 APT 方式封装,而非调用 shell 脚本。
需要我为你提供 Ansible Playbook 或 Shell 自动化安装脚本模板吗? 😊
CCLOUD博客