努力
加油

在腾讯云的Ubuntu实例中安装Docker需要配置哪些依赖?

在腾讯云的 Ubuntu 实例中安装 Docker,核心逻辑与在标准 Ubuntu 系统中一致,主要依赖的是 Linux 内核特性(如 cgroups, namespaces)以及标准的软件包管理器工具。

需要明确的是:Docker 本身并不强制要求额外的“特殊”依赖,它依赖于 Ubuntu 系统自带的底层组件。但在实际操作中,为了确保安装顺利、版本兼容以及后续运行稳定,我们需要配置以下几类关键依赖和环境:

一、基础系统依赖(必须配置)

这些是 Docker 引擎正常运行所必需的系统级支持:

  1. Linux 内核支持

    • Docker 要求 Ubuntu 内核版本不低于 4.4(推荐 5.x+)。
    • 腾讯云 Ubuntu 镜像默认内核通常满足要求,但建议升级至最新 LTS 内核以获取更好的性能和安全性。
    • 验证命令:uname -r
  2. 软件包管理器 apt

    • 用于从官方仓库下载和安装 Docker CE。
    • 确保 apt 已更新:sudo apt update
  3. HTTPS 传输支持

    • Docker 官方仓库通过 HTTPS 提供软件包,因此需要安装以下证书和传输库:
      sudo apt install -y ca-certificates curl gnupg lsb-release
  4. 存储驱动依赖(可选但推荐)

    • Docker 默认使用 overlay2 存储驱动,这是现代 Linux 内核原生支持的,无需额外安装模块。
    • 如果使用 ZFS 或 Btrfs 等特殊文件系统,则需安装对应内核模块,但腾讯云 Ubuntu 实例一般使用 ext4/xfs,故无需特殊处理。

二、网络与安全组依赖(腾讯云特有关键点)

虽然这不是“软件依赖”,但在腾讯云环境中,网络策略配置失败常被误认为是依赖缺失。务必注意:

  • 安全组规则:

    • 若需远程访问 Docker 管理的容器服务(如 Web 应用),需在腾讯云控制台 → 安全组中开放相应端口(如 80, 443, 8080 等)。
    • 不要直接暴露 Docker API 端口(2375/2376),除非你明确知道安全风险并做了认证配置。
  • 防火墙(ufw/firewalld):

    • 腾讯云实例默认可能启用 ufw。如果开启,需手动放行 Docker 相关端口:
      sudo ufw allow in on docker0
      sudo ufw reload

三、推荐安装方式及完整依赖链(官方 APT 源法)

这是最稳定、最符合 Debian/Ubuntu 生态的安装方式,避免使用过时的 .deb 包或 PPA。

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

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do 
  sudo apt remove $pkg 
done

步骤 2:设置 Docker 官方 GPG 密钥和 APT 源

# 创建 keyring 目录
sudo mkdir -p /etc/apt/keyrings

# 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 设置权限
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# 添加 Docker APT 仓库(根据 Ubuntu 版本自动识别 codename)
echo 
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu 
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | 
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

✅ 此步骤依赖:curl, gpg, lsb-release(已在第一步安装)

步骤 3:安装 Docker 引擎

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

✅ 此步骤自动解决所有运行时依赖,包括 containerd(容器运行时)、docker-compose-v2(编排工具)等。


四、常见坑与注意事项(腾讯云环境特例)

  1. 非 root 用户权限问题

    • Docker 守护进程监听 Unix socket /var/run/docker.sock,默认属主为 root。
    • 建议将当前用户加入 docker 组:
      sudo usermod -aG docker $USER
      newgrp docker
  2. Swap 分区影响

    • Docker 在较新版本中要求禁用 swap 或确保内核参数允许。腾讯云 Ubuntu 镜像默认可能未启用 swap,可通过 swapon --show 检查。
    • 若启用 swap,需修改 /etc/default/grub 中添加 swapaccount=1 并更新 grub,或在启动时传递内核参数 systemd.swap=false(不推荐生产环境完全禁用 swap)。
  3. 内核模块加载

    • 某些情况下,overlay 模块未自动加载。可手动加载:
      sudo modprobe overlay
  4. 云监控插件(可选)

    • 腾讯云主机监控插件(QcloudMonitorAgent)不影响 Docker 运行,但建议安装以便监控 CPU/内存/磁盘 IO,便于排查容器资源争用问题。

五、验证安装

# 检查 Docker 版本
docker --version

# 测试 Hello World 容器
docker run hello-world

# 查看 Docker 信息(确认存储驱动、内核版本等)
docker info

输出中包含 Storage Driver: overlay2 且无报错,即表示依赖配置成功。


总结

在腾讯云 Ubuntu 实例中安装 Docker,无需安装任何第三方专有依赖,只需确保:

  1. 系统内核 ≥ 4.4;
  2. 安装了 ca-certificates, curl, gnupg, lsb-release;
  3. 正确配置了 Docker 官方 APT 源;
  4. 腾讯云安全组放行了业务所需端口;
  5. (可选)将用户加入 docker 组以避免每次使用 sudo。

整个过程遵循标准 Debian/Ubuntu 规范,与是否使用腾讯云无关,区别仅在于网络策略和内核版本管理上需注意云平台特性。