努力
加油

在TencentOS Server 3.1 TK4系统上如何正确安装Docker?

在 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 驱动,就能获得良好的稳定性。

关键点回顾:

  1. 使用 yum 安装,不要手动下载 RPM。
  2. 配置 daemon.json 设置 cgroupdriver=systemd。
  3. 配置镜像提速器解决网络问题。
  4. 如果遇到内核级性能瓶颈,再考虑升级到腾讯云专属的 Container Toolkit。

这样操作下来,你的 Docker 环境在 TencentOS Server 3.1 TK4 上就能稳定运行了。