加油
努力

Ubuntu系统在腾讯云CVM上如何配置Docker?

在腾讯云 CVM(Ubuntu 系统)上配置 Docker 的完整、安全、推荐流程如下(以 Ubuntu 22.04/20.04 为例,适配腾讯云环境):


✅ 一、前提准备

  1. 确保 CVM 已启动并可 SSH 登录

    • 推荐使用 ubuntu 用户(非 root),并通过密钥登录。
  2. 更新系统(建议先执行)

    sudo apt update && sudo apt upgrade -y
  3. 安装必要依赖

    sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release software-properties-common

✅ 二、添加 Docker 官方 GPG 密钥和仓库(推荐方式)

⚠️ 注意:不要用 curl https://get.docker.com | sh(不安全且绕过包管理);腾讯云服务器国内访问 Docker 官网较慢,我们优先使用 阿里云镜像源 提速。

方式 1:使用阿里云 Docker 镜像源(推荐 ✅,快且稳定)

# 添加阿里云 Docker CE 仓库(支持 Ubuntu 20.04/22.04)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

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

方式 2(备选):使用腾讯云镜像源(如阿里云不可用时)

# 腾讯云镜像源(路径类似,需确认是否同步最新)
echo 
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu 
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

🔍 验证源是否生效:

apt-cache policy docker-ce
# 应看到来自 mirrors.aliyun.com 或 mirrors.cloud.tencent.com 的候选版本

✅ 三、安装 Docker Engine

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

✅ 安装成功后验证:

sudo docker --version        # 如:Docker version 24.0.7, build afdd53b
sudo docker run hello-world  # 首次运行会拉取镜像并输出欢迎信息(需网络通畅)

💡 若 hello-world 报错 Permission denied,说明未加用户组(见下一步)。


✅ 四、配置非 root 用户免 sudo 使用 Docker(重要!)

# 将当前用户(如 ubuntu)加入 docker 组
sudo usermod -aG docker $USER

# ⚠️ 必须重新登录或刷新组权限(否则仍需 sudo)
# 方法1:退出 SSH,重新登录
# 方法2(不退出):执行以下命令立即生效
newgrp docker

✅ 验证(无需 sudo):

docker run --rm hello-world  # 应正常输出
docker ps -a                 # 查看容器列表

✅ 五、(可选但强烈推荐)配置 Docker 镜像提速器(提升国内拉取速度)

腾讯云 CVM 默认走公网,国内镜像源能显著提速(避免超时/失败)。

编辑或创建 daemon.json:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",      # ✅ 腾讯云官方镜像(推荐首选)
    "https://registry.cn-hangzhou.aliyuncs.com",  // 阿里云
    "https://docker.mirrors.ustc.edu.cn"     // 中科大
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}
EOF

重启 Docker 生效:

sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker  # 开机自启(默认已启用,再确认下)

✅ 验证提速器是否生效:

sudo docker info | grep "Registry Mirrors" -A 3
# 应显示 mirror.ccs.tencentyun.com 等地址

✅ 六、(可选)安装 Docker Compose(v2,已集成在 plugin 中,但可额外确认)

Docker Compose Plugin(docker compose)已在上一步安装。验证:

docker compose version  # 如:Docker Compose version v2.23.0

❗注意:旧版 docker-compose(v1)已弃用,无需单独安装。


✅ 七、安全加固建议(生产环境必做)

项目 操作
🔐 禁用 docker.sock 远程暴露 确保 /lib/systemd/system/docker.service 中无 -H tcp://0.0.0.0:2375(默认不开启,无需操作)
🛡️ 更新策略 sudo apt install unattended-upgrades && sudo dpkg-reconfigure -plow unattended-upgrades(启用自动安全更新)
📦 限制容器资源 启动容器时加 --memory=512m --cpus=1 等参数,防资源耗尽
🌐 安全组设置 腾讯云控制台 → CVM 安全组 → 仅放行必要端口(如 22、80、443),禁止开放 2375/2376

✅ 八、常见问题排查

现象 解决方案
Cannot connect to the Docker daemon sudo systemctl status docker → 是否 running?若 no,sudo systemctl start docker
Permission denied while trying to connect to Docker daemon 检查用户是否在 docker 组:groups;未生效则 newgrp docker 或重登
Failed to pull image: timeout 检查镜像提速器是否配置正确;或临时测试:sudo docker pull registry.cn-hangzhou.aliyuncs.com/library/nginx:alpine
容器无法访问网络 检查 CVM 安全组出方向规则(默认允许),及 iptables -L -n 是否被误删

✅ 附:一键脚本(可选,用于快速部署)

保存为 install-docker.sh,赋予执行权限后运行:

#!/bin/bash
set -e
echo "📦 Installing Docker on Ubuntu (Aliyun Mirror + Tencent Accelerator)..."
sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker $USER
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF'
{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"],"log-driver":"json-file","log-opts":{"max-size":"100m","max-file":"3"}}
EOF
sudo systemctl daemon-reload && sudo systemctl restart docker
echo "✅ Docker installed! Please log out and back in, or run 'newgrp docker'"

运行:

chmod +x install-docker.sh && ./install-docker.sh

如有特殊需求(如离线安装、GPU 支持、Docker Desktop for WSL 等),欢迎补充说明,我可提供进阶方案。

需要我帮你生成 腾讯云 CVM 自定义镜像模板Ansible Playbook 自动化部署脚本 吗? 😊

云服务器