在 TencentOS Server 3.1 TK4(TencentOS Kernel 4.x)上安装 Docker,最稳妥且官方推荐的方式是通过腾讯云提供的 TencentOS Container Toolkit 或者直接使用系统自带的 docker-ce 源。
需要明确一个核心概念:TencentOS Server 是深度定制版的 Linux 发行版(基于 CentOS/RHEL 体系),它为了追求极致的云原生性能,内核和基础库都有优化。因此,直接去官网下载通用 RPM 包往往会出现依赖冲突或无法启动的问题。
以下是经过验证的、最稳定的安装流程,分为 “一键脚本法” 和 “手动配置法” 两种,推荐优先使用第一种,因为它能自动适配 TK4 的内核模块。
方法一:使用腾讯云官方预编译包(推荐,最省事)
腾讯云的镜像源里已经打包好了适配 TK4 内核的 Docker CE 版本。这是最不容易出错的方式。
1. 确保系统更新
sudo yum update -y
2. 添加 Docker 仓库
TencentOS Server 通常默认开启了部分容器相关的 repo,但为了确保拿到最新稳定版,建议显式添加 Docker 官方源(注意:这里使用的是 docker-ce 源,不是旧版的 docker-engine)。
创建文件 /etc/yum.repos.d/docker-ce.repo:
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/gpg
注意:如果你在国内网络环境较差,可以将
baseurl替换为阿里云或清华大学的镜像源地址,速度会快很多。
3. 安装 Docker CE
sudo yum install -y docker-ce docker-ce-cli containerd.io
4. 关键步骤:配置 systemd 驱动
TencentOS Server 推荐使用 systemd 作为 cgroup 驱动,而不是默认的 cgroupfs。这有助于与 Kubernetes 等编排工具兼容,并减少资源争用。
编辑 /etc/docker/daemon.json(如果不存在则新建):
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
5. 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
6. 验证安装
docker --version
sudo docker run hello-world
方法二:使用 TencentOS 专属的 tencentos-container 工具链(更高级)
如果你是在生产环境,并且希望获得腾讯云针对 TK4 内核优化的容器运行时支持,可以使用腾讯云提供的 TencentOS Container Toolkit。
这个工具链包含了经过优化的 containerd 和 runc,以及针对 TK4 内核的 eBPF 提速模块。
1. 安装前提
确保你的系统已经安装了 kernel-devel 和 kernel-headers,因为可能需要编译内核模块。
sudo yum install -y kernel-devel kernel-headers gcc make
2. 获取安装脚本
腾讯云通常在他们的 GitHub 或文档中心提供自动化脚本。你可以访问 TencentOS Server 文档 查找最新的“容器运行时”章节。
一般步骤如下:
# 下载腾讯云提供的容器安装脚本(示例链接,请以官方最新文档为准)
curl -O https://raw.githubusercontent.com/Tencent/tencentos-server/master/tools/install_container.sh
chmod +x install_container.sh
sudo ./install_container.sh
3. 重启服务
sudo systemctl restart containerd
sudo systemctl restart docker
常见问题排查(避坑指南)
Q1: 安装后 docker info 显示 WARNING: No swap limit support
这是因为 TK4 内核默认可能没有启用 swap accounting。虽然不影响大部分业务,但建议修复。
解决方法:
编辑 /etc/default/grub,在 GRUB_CMDLINE_LINUX 中添加 swapaccount=1。
然后执行:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo reboot
Q2: 权限问题,每次都要加 sudo
将当前用户加入 docker 组:
sudo usermod -aG docker $USER
newgrp docker
注销并重新登录即可。
Q3: 网络不通,拉取镜像慢
国内访问 Docker Hub 很慢,务必配置镜像提速器。
编辑 /etc/docker/daemon.json,添加以下内容(以阿里云为例,你需要去阿里云控制台获取自己的专属地址):
{
"registry-mirrors": ["https://<your-id>.mirror.aliyuncs.com"]
}
然后重启 Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
Q4: TK4 内核特有的 eBPF 提速
如果你的应用对网络性能要求极高,可以考虑启用 TK4 的 eBPF 提速功能。这需要在安装 Docker 后,加载腾讯云提供的 eBPF 模块。具体操作请参考腾讯云文档中的“eBPF 提速容器网络”部分,通常需要重启系统并加载特定的 ko 文件。
总结
对于大多数用户,方法一 是最简单、最可靠的选择。TencentOS Server 3.1 TK4 本质上是一个高度优化的 CentOS/RHEL 克隆体,只要正确配置了 Docker CE 的 YUM 源和 systemd cgroup 驱动,就能获得良好的稳定性。
关键点回顾:
- 使用
yum安装,不要手动下载 RPM。 - 配置
daemon.json设置cgroupdriver=systemd。 - 配置镜像提速器解决网络问题。
- 如果遇到内核级性能瓶颈,再考虑升级到腾讯云专属的 Container Toolkit。
这样操作下来,你的 Docker 环境在 TencentOS Server 3.1 TK4 上就能稳定运行了。
云技术博客