如何在腾讯云CVM的Ubuntu系统中配置Docker运行环境?

在腾讯云 CVM(Ubuntu 系统)上配置 Docker 运行环境,可按照以下步骤操作:


✅ 前提条件

  • 已登录腾讯云服务器(CVM),且为 Ubuntu 18.04/20.04/22.04 等主流版本
  • 使用 root 用户或具有 sudo 权限的普通用户
  • 网络正常,能访问网络(用于下载 Docker 官方源)

📦 一、安装 Docker Engine(推荐方式:官方仓库)

⚠️ 避免直接使用 Ubuntu 自带源中的旧版 Docker,建议使用 Docker 官方提供的稳定版本。

1. 更新系统包索引

sudo apt update
sudo apt upgrade -y

2. 安装必要依赖

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

3. 添加 Docker 官方 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

4. 设置 Docker 软件源

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

5. 安装 Docker Engine、CLI 和 Containerd

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

6. 验证安装

# 检查 Docker 服务状态
sudo systemctl status docker

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

✅ 若看到欢迎信息,说明安装成功。


🔐 二、非 root 用户免 sudo 运行 Docker(可选但推荐)

为避免每次执行 docker 命令都需 sudo,将当前用户加入 docker 组:

sudo usermod -aG docker $USER
newgrp docker   # 立即生效(无需重启)

💡 注意:修改组成员后,需重新登录终端或执行 newgrp docker 使权限生效。


🌐 三、配置国内镜像提速(腾讯云 CVM 建议配置)

由于默认拉取 Docker Hub 镜像较慢,建议配置阿里云或腾讯云镜像提速器。

方案 A:使用阿里云镜像提速器(免费,需注册账号获取专属地址)

  1. 登录 阿里云容器镜像服务
  2. 创建个人命名空间 → 获取专属提速地址(如:https://xxxx.mirror.aliyuncs.com
  3. 编辑 /etc/docker/daemon.json
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<'EOF'
    {
    "registry-mirrors": [
    "https://your-accelerator-address.mirror.aliyuncs.com"
    ]
    }
    EOF

    替换 your-accelerator-address 为你实际的提速域名。

方案 B:使用腾讯云 TCR 镜像提速(适用于腾讯云用户)

  • 登录 腾讯云容器镜像服务 TCR
  • 开启“公网镜像提速”功能,获取提速地址(格式类似:https://mirror.tcr.cloud.tencent.com
  • 同样写入 /etc/docker/daemon.json

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

sudo systemctl daemon-reload
sudo systemctl restart docker

🧪 四、验证镜像提速是否生效

docker pull ubuntu:latest

观察拉取速度是否明显提升,或通过 docker info 查看 Registry Mirrors 是否显示正确。


🛡️ 五、安全与优化建议(生产环境推荐)

项目 建议
防火墙 仅开放必要端口(如 80/443),Docker 默认不暴露端口,除非手动 -p
日志驱动 限制容器日志大小,避免磁盘占满:
{"log-driver": "json-file", "log-opts": {"max-size": "10m", "max-file": "3"}}
自动启动 对重要容器设置 --restart unless-stopped
定期更新 每月执行 apt update && apt upgrade -y + 检查 Docker 新版本

❓ 常见问题排查

问题 解决方案
permission denied while trying to connect to the Docker daemon socket 确认用户已在 docker 组,并执行 newgrp docker
pull access denied, repository does not exist 检查镜像名称是否正确;尝试 docker login 认证私有仓库
镜像拉取超时 检查网络连通性;更换镜像提速器;临时改用 docker pull --platform linux/amd64 指定架构
systemctl start docker 失败 检查日志:journalctl -u docker.service

需要我提供一键脚本版本,或针对特定场景(如部署 K8s、微服务、CI/CD)进一步配置吗?

云服务器