努力
加油

腾讯云CVM Ubuntu系统安装Docker的完整步骤是什么?

在腾讯云 CVM(云服务器)上部署 Ubuntu 系统的 Docker,虽然流程标准化,但为了避坑和确保生产环境的稳定性,建议按照以下“官方推荐”且经过验证的步骤操作。

这里以 Ubuntu 20.04/22.04 LTS 为例,这是目前最稳定的长期支持版本。如果你使用的是较老的版本或最新的滚动更新版,逻辑类似,但包名可能略有差异。

核心原则

  1. 不要直接用 apt install docker.io:这个包里的 Docker 版本通常滞后,且配置不规范。
  2. 使用官方 APT 仓库:保证获取的是最新稳定版。
  3. 非 root 用户运行:出于安全考虑,创建 docker-group 并赋予普通用户权限。

第一步:清理旧环境(如果之前装过)

很多教程会忽略这一步,但如果之前通过 apt 安装过 docker、docker-engine 或 docker-ce,可能会产生冲突。

# 卸载可能存在的旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc

# 清理残留的依赖和数据(可选,如果是新机器可以跳过,但建议清理以防万一)
sudo apt-get autoremove --purge

注意:执行上述命令不会删除你的镜像、容器或卷数据,它们通常存储在 /var/lib/docker。如果你担心数据丢失,可以先备份该目录。


第二步:安装前置依赖

Docker 的 APT 仓库需要 HTTPS 传输,因此需要安装证书工具;同时需要一些基础系统库。

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release

第三步:添加 Docker 官方 GPG 密钥和 APT 源

这是最关键的一步,确保你下载的软件来自 Docker 官方,未被篡改。

1. 添加 GPG 密钥

sudo mkdir -p /etc/apt/keyrings
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

2. 设置稳定版仓库

根据你的 Ubuntu 版本自动添加对应的仓库源。对于大多数腾讯云 CVM,使用以下命令即可:

echo 
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu 
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

提示:$(lsb_release -cs) 会自动识别你的 Ubuntu 代号(如 focal, jammy)。如果不确定,可以手动替换,例如 Ubuntu 22.04 是 jammy,20.04 是 focal。


第四步:安装 Docker Engine

更新索引后,安装最新版本的 Docker 引擎、CLI 工具和容器运行时。

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
  • docker-ce:社区版引擎
  • docker-ce-cli:命令行工具
  • containerd.io:容器运行时(Docker 依赖它)
  • docker-compose-plugin:原生 Compose 插件(替代旧的独立二进制文件 docker-compose,推荐使用此方式)

第五步:验证安装

检查 Docker 是否成功启动并运行。

sudo docker run hello-world

如果看到 Hello from Docker! 以及一系列说明信息,说明安装成功。

查看版本确认:

docker --version
docker compose version

第六步:配置非 Root 用户访问 Docker(重要)

默认情况下,只有 root 用户可以运行 Docker 命令。在生产环境中,这很不方便也不安全。我们需要创建一个 docker 用户组,并将当前用户加入其中。

1. 创建 docker 组(如果不存在)

sudo groupadd docker

2. 将当前用户加入 docker 组

假设你的用户名是 ubuntu(腾讯云默认),请替换为你自己的用户名:

sudo usermod -aG docker $USER

3. 激活组成员身份

为了让更改立即生效,你需要重新登录会话,或者执行:

newgrp docker

4. 测试非 root 用户权限

退出当前 SSH 连接,重新登录,然后直接运行(不需要 sudo):

docker ps

如果没有报错,说明配置成功。


第七步:配置镜像提速器(国内必做)

在国内访问 Docker Hub 拉取镜像速度极慢甚至超时。必须配置腾讯云或阿里云等国内镜像提速器。

1. 获取腾讯云镜像提速器地址

登录 腾讯云控制台 -> 搜索“容器镜像服务” -> 左侧菜单“镜像提速器”。你会看到一个类似这样的地址:
https://mirror.ccs.tencentyun.com

2. 修改 Docker 配置文件

编辑 /etc/docker/daemon.json。如果文件不存在,则创建它。

sudo vi /etc/docker/daemon.json

写入以下内容(请将 your-accelerator-url 替换为你从腾讯云控制台获取的实际地址):

{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",
    "https://docker.m.daocloud.io"
  ],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}

说明:

  • registry-mirrors:提速源,建议优先用腾讯云官方提供的,其次可以用 daocloud 等第三方。
  • exec-opts: 指定 cgroup driver 为 systemd,这与 Kubernetes 推荐的保持一致,避免后续编排问题。
  • log-opts:限制日志大小和数量,防止磁盘被 Docker 日志撑爆,这是运维最佳实践。

3. 重启 Docker 服务使配置生效

sudo systemctl daemon-reload
sudo systemctl restart docker

4. 验证提速器是否生效

docker info | grep -i registry

输出中应包含你配置的镜像提速器地址。


常见问题排查

  1. 权限拒绝 (Permission denied)

    • 确保已执行 usermod -aG docker $USER 并重新登录。
    • 检查 /var/run/docker.sock 的权限。
  2. 启动失败

    • 查看日志:sudo journalctl -u docker.service -f
    • 常见原因:端口冲突、SELinux/AppArmor 拦截(Ubuntu 默认不启用 AppArmor 严格模式,但需留意)、磁盘空间不足。
  3. 无法拉取镜像

    • 检查网络连通性:ping mirror.ccs.tencentyun.com
    • 检查防火墙:腾讯云安全组是否放行了出站 443 端口(默认放行,但需确认)。
  4. Compose 命令找不到

    • 如果使用 docker-compose-plugin,请使用 docker compose up(中间有空格),而不是 docker-compose up。

总结

这套流程是腾讯云 CVM + Ubuntu 环境下最稳健的 Docker 安装方案。关键点在于:使用官方源而非 apt 默认源、配置镜像提速器、非 root 用户权限管理。完成这些步骤后,你的服务器就具备了运行现代云原生应用的基础环境。