在腾讯云 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 免费额度)
- 登录 腾讯云容器镜像服务 TCR
- 创建命名空间 → 获取「内网提速地址」或「公网提速地址」(如:
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 高可用集群部署指南,欢迎随时告诉我 👇
祝你上云顺利,容器飞驰!🚀
PHPWP博客