在腾讯云 Ubuntu 服务器上部署 Docker,最稳妥且高效的方式不是去 GitHub 上手动拉取 .deb 包折腾依赖,而是利用腾讯云提供的官方源以及 Docker 官方的标准安装脚本。这里的核心痛点通常在于国内网络环境对 Docker Hub 的访问不稳定,所以“安装”只是第一步,“配置镜像提速”才是保证后续 docker pull 不超时的关键。
以下是针对腾讯云 Ubuntu 实例(以 Ubuntu 20.04/22.04 为例)的标准操作流程。
一、 卸载旧版本与清理环境
如果你之前尝试过手动安装或存在残留的 Docker 文件,建议先清理,避免端口冲突或权限问题。
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get autoremove --purge
# 清理可能残留的配置和数据目录(谨慎操作,确认无重要数据后执行)
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
二、 使用官方脚本一键安装
Docker 官方提供了 get-docker.sh 脚本,它会自动处理添加 GPG 密钥、添加 APT 源、安装最新稳定版等繁琐步骤。这是目前社区公认最快、出错率最低的方法。
- 下载并执行安装脚本
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
注意:这里特意指定了
--mirror Aliyun。虽然 Docker 官方脚本默认可能指向全球 CDN,但在国内服务器环境下,阿里云的镜像源通常比 Docker 官方源更稳定、速度更快。如果该参数在某些新版脚本中不被支持,可以不加此参数,直接运行curl -fsSL https://get.docker.com | bash,然后在下一步手动配置源。
- 启动并设置开机自启
sudo systemctl enable docker
sudo systemctl start docker
- 验证安装
docker version
docker info
如果能正常显示 Client 和 Server 的版本信息,说明基础环境已就绪。此时建议将当前用户加入 docker 组,避免每次使用 docker 命令都要加 sudo:
sudo usermod -aG docker $USER
newgrp docker
三、 配置镜像提速器(核心步骤)
这一步是解决“拉取慢”、“超时”的关键。我们需要修改 Docker 的守护进程配置文件 /etc/docker/daemon.json。
方案 A:使用腾讯云专属镜像提速(推荐)
腾讯云为注册了账号的用户提供了专属的镜像提速地址,这个地址经过腾讯内网优化,速度极快且稳定。
-
获取你的专属提速地址
登录 腾讯云控制台 -> 左侧导航栏选择“容器服务” -> “镜像中心” -> “镜像提速器”。你会看到一个类似https://<your-id>.mirror.ccs.tencentyun.com的地址。 -
编辑配置文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://<你的专属ID>.mirror.ccs.tencentyun.com"
],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"live-restore": true
}
EOF
注:exec-opts 用于确保 Docker 使用 systemd 作为 cgroup 驱动,这在 Ubuntu 上是最佳实践,能更好地配合 Kubernetes 等编排工具。live-restore 允许在 daemon 重启时保持容器运行。
方案 B:备用公共提速源(如果方案 A 不可用)
如果无法获取腾讯云专属地址,可以使用阿里云、网易云或华为云的公开提速地址。以下是一个通用的组合示例:
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com",
"https://docker.m.daocloud.io",
"https://huecker.io"
],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
四、 重启 Docker 服务并验证
修改配置文件后,必须重启 Docker 守护进程才能生效。
sudo systemctl daemon-reload
sudo systemctl restart docker
验证是否生效:
运行以下命令查看 Docker 的系统信息:
docker info | grep -i mirror
输出中应该能看到你配置的提速地址列表。如果显示为空,请检查 /etc/docker/daemon.json 的 JSON 格式是否正确(逗号、括号不能多也不能少)。
五、 常见问题排查
-
JSON 格式错误导致 Docker 起不来
这是最常见的坑。daemon.json对格式要求极其严格。建议使用python3 -m json.tool /etc/docker/daemon.json来校验语法。如果有错,修复后再次重启。 -
防火墙/安全组限制
虽然配置的是本地镜像提速,但如果你需要拉取私有仓库镜像,请确保腾讯云控制台的安全组规则中,出站方向(Outbound)对 443 端口是开放的。入站方向通常不需要对 Docker 端口开放,除非你要远程管理。 -
Ubuntu 内核更新后 Docker 失效
偶尔系统升级内核后,可能需要重新编译内核模块。如果遇到kernel module not found错误,尝试重启服务器而非仅重启 Docker 服务。 -
关于 Snap 安装的冲突
如果你之前通过apt install docker.io安装了 Docker,它可能会与上述方式冲突。务必在执行第一步前彻底卸载旧版,并确认没有残留的 snap 包:sudo snap remove docker。
按照以上步骤,你可以在 5 分钟内完成一个高速、稳定的 Docker 环境搭建。对于生产环境,建议定期关注 Docker 官方公告进行小版本升级,以保持安全性。
云技术博客