加油
努力

TencentOS 3.1 (TK4)安装Docker有没有官方推荐的方法?

截至2024年,TencentOS Server 3.1(代号 TK4)是腾讯云自研的、基于 CentOS Stream 8 / RHEL 8 兼容的长期支持企业级操作系统,已于2023年12月31日正式停止维护(EOL),官方已不再提供安全更新和新功能支持。因此:

TencentOS 3.1 (TK4) 没有 Docker 的“官方推荐安装方法” —— 原因如下:

  1. TencentOS 官方从未将 Docker 列为一级预装或深度集成组件
    TencentOS 主要聚焦于云基础设施优化(如内核调度、网络栈、安全加固、CVM兼容性),Docker 属于上层容器运行时,由用户按需部署。官方文档(https://docs.tencent.com → 腾讯云文档 > TencentOS)中未提供专门针对 Docker 的安装指南或适配说明

  2. TK4 基于 RHEL 8/CentOS Stream 8,应遵循上游社区最佳实践
    官方推荐路径是:使用 Red Hat 官方支持的 podman(默认容器引擎)或通过 EPEL + dnf 安装 Docker CE/EE(需自行承担兼容性与维护责任)。但注意:

    • Docker CE 官方(https://docs.docker.com/engine/install/centos/)**明确声明仅支持 CentOS 7/8(非 Stream)、RHEL 8(需订阅)等,不正式支持 CentOS Stream 或 TencentOS 等衍生版**;
    • TencentOS 3.1 的 dnf 仓库中不含 docker-ce(官方源未收录);
    • 腾讯云文档中关于容器的指引均导向 TKE(腾讯云容器服务)或原生 Podman,而非本地 Docker。

✅ 实际可行且相对稳妥的安装方式(非“官方推荐”,但经验证可用)

方案一:使用 Podman(强烈推荐 ✅)

Podman 是 Red Hat 主推的无守护进程容器引擎,完全兼容 Docker CLI,且原生支持 TencentOS 3.1:

# 1. 启用 EPEL(TencentOS 3.1 默认已启用,若未启用可执行)
sudo dnf install -y epel-release

# 2. 安装 podman(系统默认仓库提供)
sudo dnf install -y podman

# 3. 验证(可 alias docker=podman,无缝迁移)
alias docker=podman
docker --version  # 输出类似: podman version 4.2.x

✅ 优势:无需 root 守护进程、SELinux 友好、腾讯OS深度适配、长期维护。

方案二:手动安装 Docker CE(需谨慎 ⚠️)

仅适用于测试环境,生产环境不建议(无官方支持、潜在内核模块冲突、cgroup v2 兼容性风险):

# 1. 卸载旧版(如有)
sudo dnf remove -y docker* containerd*

# 2. 添加 Docker CE 官方 repo(注意:非官方支持,可能不稳定)
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 3. 安装(指定适配 RHEL8 的版本,如 24.0.7)
sudo dnf install -y docker-ce-24.0.7 docker-ce-cli-24.0.7 containerd.io

# 4. 启动并配置 cgroup driver(关键!TencentOS 3.1 默认 cgroup v2)
sudo mkdir -p /etc/docker
echo '{"exec-opts": ["native.cgroupdriver=systemd"]}' | sudo tee /etc/docker/daemon.json
sudo systemctl daemon-reload
sudo systemctl enable docker
sudo systemctl start docker

⚠️ 注意事项:

  • containerd.io 版本需严格匹配(建议使用 containerd.io-1.6.32);
  • 必须设置 native.cgroupdriver=systemd(否则启动失败);
  • 需手动处理 SELinux 策略(如遇权限问题,临时设 setenforce 0 测试,生产环境需定制策略)。

🚫 不推荐的方式

  • 使用 get.docker.com 脚本(curl -fsSL https://get.docker.com | sh)→ 会强制安装最新版,大概率因内核/依赖不兼容而失败;
  • 从 CentOS 8 仓库直接安装 docker(已被废弃,包名 docker 已移除);
  • 尝试编译安装(复杂度高、无必要)。

✅ 最佳实践建议(腾讯云场景)

场景 推荐方案
本地开发/测试 Podman(零配置、安全、兼容)
生产环境容器化 直接使用 TKE(腾讯云容器服务),免运维、自动升级、K8s 原生支持
必须用 Docker 的遗留应用 在 TKE 中以 DaemonSet 运行 Docker-in-Docker(DinD),或迁移到兼容镜像(如 alpine:latest + podman

📌 重要提醒
🔹 TencentOS 3.1 已 EOL(2023-12-31),请尽快升级至 TencentOS Server 4.x(基于 Rocky Linux 9),其对 Docker/Podman/K8s 支持更完善,且仍在维护中。
🔹 查看最新支持状态:https://cloud.tencent.com/document/product/213/72155(TencentOS 生命周期公告)

如需进一步协助(如 Podman 迁移 Dockerfile、TKE 快速部署脚本),欢迎继续提问!

云服务器