在腾讯云 CVM(Ubuntu 系统)上配置 Docker 的完整、安全、推荐流程如下(以 Ubuntu 22.04/20.04 为例,适配腾讯云环境):
✅ 一、前提准备
-
确保 CVM 已启动并可 SSH 登录
- 推荐使用
ubuntu用户(非 root),并通过密钥登录。
- 推荐使用
-
更新系统(建议先执行)
sudo apt update && sudo apt upgrade -y -
安装必要依赖
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 自动化部署脚本 吗? 😊
云小栈