加油
努力

TencentOS Server 3.1支持Docker吗?安装步骤是什么?

是的,TencentOS Server 3.1(基于 CentOS 8 兼容内核,但为腾讯自研的国产化操作系统)支持 Docker,但需注意以下关键点:

支持前提

  • TencentOS Server 3.1 内核版本为 4.19.x(如 4.19.90-23.7.tl2),已启用 cgroups v1 和必要模块(如 overlay2 支持),满足 Docker 运行要求;
  • 官方虽未预装 Docker,但完全兼容 Docker CE(Community Edition)20.10.x 及后续 LTS 版本(推荐 20.10.24 或 24.0.x);
  • ⚠️ 不支持 Docker Desktop(仅限 Linux CLI);
  • ⚠️ 不推荐使用旧版 docker.io(来自 EPEL)包,因其可能过时且与 TencentOS 的 systemd/cgroups 配置存在兼容性风险。

✅ 推荐安装方式:使用 Docker 官方仓库(最稳定、安全)

步骤 1:卸载旧版 Docker(如有)

sudo dnf remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
sudo rm -rf /var/lib/docker /var/lib/containerd

步骤 2:安装依赖工具

sudo dnf install -y yum-utils device-mapper-persistent-data lvm2

步骤 3:添加 Docker 官方 YUM 仓库(适配 TencentOS 3.1 —— 基于 RHEL/CentOS 8 兼容源)

sudo yum-config-manager 
    --add-repo 
    https://download.docker.com/linux/centos/docker-ce.repo

✅ TencentOS 3.1 与 CentOS 8 ABI 兼容,因此可直接使用 centos 仓库(Docker 官方未提供独立 tencentos repo,但实测兼容性良好)。

步骤 4:安装 Docker CE(推荐稳定版)

# 列出可用版本(可选)
dnf list docker-ce --showduplicates | sort -r

# 安装最新稳定版(或指定版本,例如 24.0.7)
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# ✅ 强烈建议安装 containerd.io(Docker 20.10+ 默认运行时)

步骤 5:启动并设置开机自启

sudo systemctl enable docker
sudo systemctl start docker

# 验证安装
sudo docker version
sudo docker run --rm hello-world

步骤 6(可选但推荐):配置镜像提速器(提升国内拉取速度)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",   # 腾讯云官方镜像(推荐)
    "https://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

💡 注:native.cgroupdriver=systemd 是 TencentOS 3.1(使用 systemd+cgroups v2 混合模式)下的最佳实践,避免 cgroup driver 冲突。


🔍 验证是否正常运行

# 检查 cgroup 驱动
sudo docker info | grep "Cgroup Driver"

# 查看存储驱动(应为 overlay2)
sudo docker info | grep "Storage Driver"

# 运行测试容器
sudo docker run -it --rm alpine:latest sh -c "echo 'Hello from TencentOS 3.1 + Docker!'"

⚠️ 注意事项 & 常见问题

问题 解决方案
Error: cannot enable containerd.service: Unit containerd.service does not exist Docker 24.0+ 已将 containerd 作为子包安装,确保执行了 dnf install containerd.io;若仍报错,手动启用:sudo systemctl enable containerd && sudo systemctl start containerd
overlay2 不支持 检查内核参数:zgrep CONFIG_OVERLAY_FS /proc/config.gzmodprobe overlay && lsmod | grep overlay;TencentOS 3.1 默认已启用,无需额外操作
❌ 普通用户无法执行 docker 命令 将用户加入 docker 组:
sudo usermod -aG docker $USER
然后重新登录或执行 newgrp docker
🐳 是否支持 Docker Compose? 是!docker-compose-plugin 已随 docker-ce 安装,命令为 docker compose(非旧版 docker-compose);验证:docker compose version

✅ 补充说明:TencentOS 官方态度

  • 腾讯云官方文档 TencentOS Server 3.1 技术白皮书 明确指出支持容器运行时(包括 Docker、containerd、Podman);
  • 在 TencentOS 镜像站 中虽未提供 Docker 包,但鼓励用户使用上游标准源;
  • 生产环境建议搭配 Tencent Kubernetes Engine(TKE)Tencent Container Registry(TCR) 使用。

如需进一步优化(如集成 Podman、启用 rootless Docker、或对接 TKE),我可为你提供详细配置。欢迎继续提问! 🐋

云服务器