如何在腾讯云CVM服务器上安装和配置Docker环境?

在腾讯云 CVM(Cloud Virtual Machine)上安装和配置 Docker 环境,推荐使用 官方 Docker 安装方式(通过 Docker 官方 APT/YUM 仓库),安全、稳定且易于更新。以下是针对主流 Linux 发行版(Ubuntu/Debian 和 CentOS/RHEL/AlmaLinux/Rocky Linux)的详细步骤,已适配腾讯云环境(含网络优化建议):


✅ 前提条件

  • 已登录腾讯云 CVM(建议使用 SSH 密钥登录)
  • 操作系统为:
    • Ubuntu 20.04/22.04/24.04(推荐 Ubuntu 22.04 LTS)
    • 或 CentOS 7/8、AlmaLinux 8/9、Rocky Linux 8/9(注意:CentOS 7 已 EOL,建议升级)
  • 具备 sudo 权限(或 root 用户)
  • 确保系统已更新(腾讯云镜像通常已优化,但仍建议同步)

🐳 一、通用准备(所有系统均需执行)

1. 更新系统并安装基础依赖

# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl gnupg2 ca-certificates lsb-release software-properties-common

# CentOS/RHEL/AlmaLinux/Rocky Linux(以 8+/9 为例)
sudo dnf update -y
sudo dnf install -y dnf-plugins-core curl wget jq

# (CentOS 7 专用)若用 yum:
# sudo yum update -y
# sudo yum install -y yum-utils curl wget jq

2. 卸载旧版本 Docker(如有)

# Ubuntu/Debian
sudo apt remove docker docker-engine docker.io containerd runc -y

# CentOS/RHEL/AlmaLinux/Rocky
sudo dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine -y
# 或 CentOS 7:
# sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine -y

⚠️ 注意:腾讯云部分镜像可能预装了 docker-ce(如某些“Docker 镜像”),建议先检查:
docker --version 或 which docker,若有则跳过安装,直接进入「配置」步骤。


📦 二、安装 Docker Engine(官方方式)

✅ 推荐方式:使用 Docker 官方仓库(稳定可靠)

▶ Ubuntu/Debian(以 Ubuntu 22.04 为例)

# 添加 Docker 官方 GPG 密钥(使用腾讯云镜像提速下载)
curl -fsSL https://mirrors.cloud.tencent.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.cloud.tencent.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 docker run hello-world  # 首次运行会拉取镜像并输出欢迎信息

▶ CentOS/RHEL/AlmaLinux/Rocky Linux(以 AlmaLinux 8 为例)

# 添加 Docker 官方仓库(使用腾讯云镜像源提速)
sudo dnf config-manager --add-repo https://mirrors.cloud.tencent.com/docker-ce/linux/centos/docker-ce.repo

# (可选)启用 nightly 或 test 仓库(生产环境不建议)
# sudo dnf config-manager --enable docker-ce-nightly

# 安装 Docker Engine + CLI + Containerd + 插件
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# ✅ 验证安装
sudo docker run hello-world

💡 腾讯云镜像优势:https://mirrors.cloud.tencent.com 在国内访问更快、更稳定,避免因国外源超时失败。


⚙️ 三、配置 Docker(关键步骤!)

1. 启动并设置开机自启

sudo systemctl enable docker
sudo systemctl start docker

2. 将当前用户加入 docker 组(免 sudo 运行 docker 命令)

sudo usermod -aG docker $USER
# ⚠️ 必须重新登录 SSH 或执行以下命令刷新组权限:
newgrp docker  # 或直接退出重连 SSH

✅ 验证(无需 sudo):

docker ps  # 应返回空列表(无容器运行),无 permission denied 错误

3. 【强烈推荐】配置国内镜像提速器(解决拉取慢/超时问题)

腾讯云提供免费镜像提速服务(需注册腾讯云账号,但无需付费):

方法一:使用腾讯云容器镜像服务(COS + TCR 免费额度)

  1. 登录 腾讯云容器镜像服务 TCR
  2. 创建命名空间 → 获取「内网提速地址」或「公网提速地址」(如:https://xxx.mirror.tencentyun.com)

    ✅ 推荐使用内网地址(形如 https://xxxxxx.tencentcloudcr.com),CVM 同地域访问零流量费、极快!

方法二:使用公共镜像提速器(无需登录)

# 创建或编辑 daemon.json
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",      # ✅ 腾讯云官方镜像(推荐)
    "https://docker.mirrors.ustc.edu.cn",     # 中科大
    "https://registry.docker-cn.com"          # Docker 官方中国区(已停更,备用)
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}
EOF

# 重启 Docker 生效
sudo systemctl daemon-reload
sudo systemctl restart docker

✅ 验证镜像提速是否生效:

docker info | grep "Registry Mirrors" -A 5

4. 【可选】配置 Docker Root 目录(避免系统盘爆满)

腾讯云 CVM 若挂载了数据盘(如 /data),建议将 Docker 数据迁移到大容量盘:

# 停止 Docker
sudo systemctl stop docker

# 移动现有数据(谨慎操作!确保 /data 有足够空间)
sudo rsync -avz /var/lib/docker/ /data/docker/

# 备份原目录并创建软链
sudo mv /var/lib/docker /var/lib/docker.bak
sudo ln -s /data/docker /var/lib/docker

# 启动 Docker
sudo systemctl start docker

✅ 验证:docker system df 查看磁盘使用位置;df -h /data 确认空间充足。


🔍 四、验证与测试(必做)

# 1. 查看 Docker 版本与状态
docker --version
docker info | grep -E "(Server Version|Storage Driver|Registry Mirrors)"

# 2. 运行测试容器(带端口映射)
docker run -d -p 8080:80 --name nginx-test nginx:alpine
curl http://localhost:8080  # 应返回 Nginx 欢迎页 HTML

# 3. 清理测试资源
docker stop nginx-test && docker rm nginx-test
docker image prune -f

🛡️ 五、安全与运维建议(腾讯云场景)

项目 建议
防火墙 腾讯云 CVM 使用安全组控制入站流量,不要开启 ufw/firewalld(易与安全组冲突)。确保安全组放行所需端口(如 22, 80, 443, 自定义服务端口)
Docker 安全 ❌ 禁止将 docker.sock 挂载给不可信容器;✅ 启用 --userns-remap(高级);定期 docker scan 扫描镜像漏洞
日志管理 生产环境建议配置日志驱动(如 fluentd 或 awslogs),避免 json-file 占满磁盘
自动更新 不建议自动升级 Docker(可能引入兼容性问题),建议手动 apt/dnf update && apt/dnf install docker-ce 并测试
监控 结合腾讯云 Cloud Monitor + 自定义指标(如 docker stats)

📌 常见问题速查

现象 解决方案
Cannot connect to the Docker daemon 检查 systemctl status docker;确认用户已加入 docker 组并重登
Permission denied while trying to connect to the Docker daemon socket 执行 newgrp docker 或重连 SSH;检查 /var/run/docker.sock 权限(应属 root:docker)
docker pull timeout / Get https://registry-1.docker.io/v2/: net/http: request canceled ✅ 确认已配置镜像提速器;检查 ping mirror.ccs.tencentyun.com 是否可达
Error response from daemon: cgroup-parent for systemd slice already exists(CentOS 8+) 在 /etc/docker/daemon.json 中添加 "exec-opts": ["native.cgroupdriver=systemd"],重启 Docker

✅ 完成!你现在已在腾讯云 CVM 上成功部署生产就绪的 Docker 环境。下一步可部署:

  • Docker Compose(已随插件安装,docker compose version)
  • Nginx 反向X_X + HTTPS(Let’s Encrypt)
  • Kubernetes(k3s / kubeadm)
  • CI/CD 流水线(GitLab Runner / Jenkins)

需要我为你生成 一键安装脚本、Docker Compose 示例(Nginx + PHP + MySQL) 或 K3s 高可用集群部署指南,欢迎随时告诉我 👇

祝你上云顺利,容器飞驰!🚀