是的,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 官方未提供独立tencentosrepo,但实测兼容性良好)。
步骤 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.gz 或 modprobe 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),我可为你提供详细配置。欢迎继续提问! 🐋
云小栈