在腾讯轻量云服务器上如何正确拉取Docker镜像?

在腾讯云轻量应用服务器(Lighthouse)上正确拉取 Docker 镜像,需确保环境已正确准备并遵循最佳实践。以下是详细、安全、可操作的步骤指南(适用于 Ubuntu/Debian 或 CentOS/AlmaLinux 等主流系统):


一、前提条件检查

  1. 确认轻量服务器已安装 Docker
    腾讯云轻量服务器默认不预装 Docker,需手动安装:

    🔹 Ubuntu/Debian(推荐)

    # 更新包索引
    sudo apt update
    
    # 安装依赖
    sudo apt install -y curl gnupg2 software-properties-common
    
    # 添加 Docker 官方 GPG 密钥
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
    # 添加 Docker APT 仓库(注意:根据系统版本选择,如 jammy/focal)
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    # 更新并安装 Docker Engine
    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io
    
    # 启动并设置开机自启
    sudo systemctl enable docker
    sudo systemctl start docker
    
    # 验证安装(非 root 用户需加 sudo;如想免 sudo,见下方权限配置)
    sudo docker --version
    sudo docker run hello-world  # ✅ 成功则输出欢迎信息

    🔹 CentOS/AlmaLinux/Rocky Linux

    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sudo yum install -y docker-ce docker-ce-cli containerd.io
    sudo systemctl enable docker && sudo systemctl start docker
    sudo docker --version
  2. (可选但强烈推荐)将当前用户加入 docker 组,避免每次用 sudo

    sudo usermod -aG docker $USER
    # 退出终端重新登录,或执行:
    newgrp docker
    # 验证:运行以下命令不应报 permission denied
    docker info | grep "Name:"  # 应正常输出
  3. 确认网络连通性
    轻量服务器默认可访问公网(除非安全组/防火墙限制),验证:

    ping -c 3 hub.docker.com
    curl -I https://hub.docker.com  # 应返回 HTTP 200

二、正确拉取 Docker 镜像(核心操作)

基础拉取(使用 Docker Hub 官方镜像)

# 拉取最新版 nginx
docker pull nginx

# 拉取指定版本(推荐生产环境使用明确 tag)
docker pull nginx:1.25.4

# 拉取多架构镜像(如 arm64,轻量服务器多为 x86_64,一般无需指定)
docker pull --platform linux/amd64 nginx

国内提速(关键!提升拉取速度 & 规避限流)
腾讯云用户强烈建议配置国内镜像提速器(如腾讯云容器镜像服务 TCR 免费版 或 阿里云/中科大镜像):

🔹 方法 1:配置 Docker daemon 使用腾讯云 TCR 提速(推荐)

  1. 登录 腾讯云容器镜像服务 TCR → 创建个人版实例(免费)→ 获取「内网/网络访问地址」(如 https://mirror.ccs.tencentyun.com
  2. 配置 Docker daemon:
    # 创建或编辑 daemon.json
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
     "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
    }
    EOF
    # 重启 Docker 生效
    sudo systemctl daemon-reload
    sudo systemctl restart docker
  3. 验证提速生效:
    docker info | grep "Registry Mirrors"  # 应显示你的镜像地址

🔹 方法 2:临时使用阿里云镜像(无需注册)

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://<your-aliyun-id>.mirror.aliyuncs.com"]
}
EOF
# 或通用公共镜像(不推荐长期使用):
# "https://mirrors.aliyun.com/docker-ce/"
sudo systemctl restart docker

⚠️ 注意:不要使用过时的 --registry-mirror 启动参数(Docker 17.06+ 已废弃,必须用 daemon.json


三、进阶场景与注意事项

场景 命令/说明
拉取私有仓库镜像(如 TCR 企业版) 先登录:docker login --username=xxx --password=xxx xxx.tencentcloudcr.com,再 docker pull xxx.tencentcloudcr.com/namespace/repo:tag
拉取 GitHub Container Registry (GHCR) docker pull ghcr.io/username/image:tag(需先 docker login ghcr.io
查看已拉取镜像 docker images
清理未使用镜像(节省磁盘) docker image prune -a(谨慎!会删所有未被容器引用的镜像)
指定存储路径(轻量服务器磁盘小,建议) 修改 /etc/docker/daemon.json"data-root": "/data/docker",确保 /data 分区足够大(轻量服务器系统盘通常仅 50–100GB)

四、常见问题排查

问题 解决方案
Permission denied while trying to connect to the Docker daemon socket 执行 sudo usermod -aG docker $USER + 重新登录终端
Error response from daemon: Get "https://registry-1.docker.io/v2/...": net/http: request canceled while waiting for connection 检查网络/X_X;立即配置 registry-mirrors 提速器;或 ping hub.docker.com 确认 DNS 是否正常(可临时改 /etc/resolv.confnameserver 8.8.8.8
no matching manifest for linux/arm64/v8 in the manifest list entries 服务器是 x86_64,但镜像只提供 arm 架构 → 指定平台:docker pull --platform linux/amd64 image-name
磁盘空间不足(no space left on device docker system df 查看占用;docker system prune -a 清理;或挂载大容量数据盘并修改 data-root

五、安全提醒(腾讯云特别注意)

  • ❌ 不要以 root 用户直接运行容器(尤其暴露端口时)
  • ✅ 使用 -u 参数降权:docker run -u 1001:1001 nginx
  • ✅ 轻量服务器安全组:仅开放必要端口(如 80/443),禁止开放 2375/2376(Docker 远程 API)
  • ✅ 定期更新 Docker:sudo apt update && sudo apt install --only-upgrade docker-ce

总结:一键验证流程

# 1. 确保 Docker 正常运行
docker info >/dev/null && echo "✅ Docker OK" || echo "❌ Docker not ready"

# 2. 配置提速器(示例:腾讯云 TCR)
sudo tee /etc/docker/daemon.json <<'EOF'
{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]}
EOF
sudo systemctl restart docker

# 3. 拉取并运行测试镜像
docker pull nginx:alpine
docker run -d -p 8080:80 --name web-test nginx:alpine
curl -s http://localhost:8080 | grep -q "Welcome to nginx" && echo "✅ Pull & Run Success!" || echo "❌ Failed"

如需进一步帮助(如部署 Nginx/MySQL/WordPress 完整栈、绑定域名、HTTPS、TCR 私有仓库实战),欢迎继续提问! 🐳

未经允许不得转载:ECLOUD博客 » 在腾讯轻量云服务器上如何正确拉取Docker镜像?