腾讯云CVM如何安装和运行Docker?

在腾讯云 CVM(Cloud Virtual Machine)上安装和运行 Docker,需根据您选择的 Linux 发行版(如 CentOS、Ubuntu、Debian 等)执行对应步骤。以下以 主流且推荐的 Ubuntu 22.04 LTSCentOS 7/8(注意:CentOS 8 已停止维护,建议用 CentOS Stream 或 Rocky/AlmaLinux;腾讯云镜像默认多为 CentOS 7 或 TencentOS Server) 为例,提供安全、稳定、符合最佳实践的完整操作指南:


通用前提条件

  • 已登录 CVM(通过 SSH,如 ssh -i key.pem ubuntu@xx.xx.xx.xx
  • CVM 系统已更新(建议先升级)
  • 具备 sudo 权限(推荐使用非 root 用户操作)
  • 网络通畅(需能访问 download.docker.com 或国内镜像源)

✅ 方案一:Ubuntu 22.04 / 20.04(推荐)

# 1. 更新系统并安装依赖
sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg lsb-release

# 2. 添加 Docker 官方 GPG 密钥(使用国内镜像提速)
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 3. 添加 Docker APT 仓库(清华源,更快更稳定)
echo 
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] 
  https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu 
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 4. 安装 Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 5. 启动并设置开机自启
sudo systemctl enable docker
sudo systemctl start docker

# 6. 验证安装(无需 sudo 运行 hello-world)
sudo docker run hello-world

# ✅ 可选:将当前用户加入 docker 组(避免每次用 sudo)
sudo usermod -aG docker $USER
# ⚠️ 执行后需重新登录 SSH 或运行:newgrp docker

💡 提示:若 docker run hello-world 报错 permission denied,请退出终端重登或执行 newgrp docker


✅ 方案二:CentOS 7(腾讯云常见镜像)

# 1. 卸载旧版本(如有)
sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

# 2. 安装必要工具
sudo yum install -y yum-utils

# 3. 添加 Docker CE 仓库(使用阿里云镜像源,国内更快)
sudo yum-config-manager 
    --add-repo 
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 4. 安装 Docker(指定稳定版,避免安装测试版)
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 5. 启动并设为开机自启
sudo systemctl enable docker
sudo systemctl start docker

# 6. 验证
sudo docker run hello-world

# ✅ 可选:添加当前用户到 docker 组
sudo usermod -aG docker $USER
# 退出重登或执行:newgrp docker

📌 注意:CentOS 7 默认使用 containerd 作为容器运行时,上述安装已自动配置,无需额外操作。


✅ 方案三:TencentOS Server(腾讯云定制版,基于 CentOS/RHEL)

TencentOS Server 3.x(内核 5.4+)已预装 podman,但 Docker 仍可手动安装(推荐使用官方源):

# 方法同 CentOS 7(因兼容 RHEL),但推荐优先使用清华源或腾讯云镜像:
sudo yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker

🔐 安全加固建议(生产环境必做)

项目 操作
🔒 限制 Docker API 访问 默认只监听 Unix socket (/var/run/docker.sock),切勿启用 tcp://0.0.0.0:2375(高危!)
🛡️ 配置 containerd 使用 systemd cgroup 驱动(推荐) 编辑 /etc/containerd/config.toml,确保:
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
然后 sudo systemctl restart containerd
🧹 清理无用镜像/容器 docker system prune -a -f(谨慎执行)
📦 使用非 root 用户管理 通过 usermod -aG docker $USER 实现权限最小化

🐳 快速验证是否成功

# 查看 Docker 版本
docker --version

# 查看运行状态
sudo systemctl status docker

# 查看运行中的容器(应为空)
docker ps

# 运行一个 Nginx 测试容器(后台 + 端口映射)
docker run -d -p 8080:80 --name web-test nginx:alpine

# 在浏览器访问 http://<你的CVM公网IP>:8080,应看到 Nginx 欢迎页

✅ 成功标志:页面显示 “Welcome to nginx!”,且 docker ps 显示该容器正在运行。


❗ 常见问题排查

现象 原因与解决
Cannot connect to the Docker daemon 未启动服务 → sudo systemctl start docker;或用户未加入 docker 组 → sudo usermod -aG docker $USER + 重登
Permission denied while trying to connect to the Docker daemon socket 同上,检查 ls -l /var/run/docker.sock,确认属组为 docker
Failed to download metadata for repo 'docker-ce-stable' 网络问题或仓库地址失效 → 检查网络、更换镜像源(如换为 https://mirrors.ustc.edu.cn/docker-ce/
CVM 内存不足导致容器启动失败 腾讯云轻量应用服务器/CVM 低配机型(如 1C1G)可能内存紧张 → 关闭无用服务,或升级配置

总结推荐流程(一步到位脚本,Ubuntu 示例):

# 复制粘贴执行(Ubuntu 22.04)
curl -fsSL https://get.docker.com | sh && 
sudo systemctl enable docker && 
sudo systemctl start docker && 
sudo usermod -aG docker $USER && 
echo "✅ Docker 安装完成!请退出终端后重新登录,再执行 'docker run hello-world'"

⚠️ 注意:get.docker.com 是官方一键脚本,生产环境建议用上面分步方式(可控、可审计);开发/测试环境可用此简化。


需要我为你生成:

  • 自动化安装脚本(支持 Ubuntu/CentOS/TencentOS 自动识别)
  • Docker + Docker Compose + Portainer 一体化部署
  • 腾讯云 CVM + Docker + Nginx + HTTPS(Let’s Encrypt)生产级部署模板
    欢迎随时告诉我 👇

祝你顺利上云!🚀