目录

一、前言

二、环境准备

三、Docker 一键安装(国内源稳定版)

四、实战踩坑与解决方案

坑 1:GPG 密钥错误 NO_PUBKEY 7EA0A9C3F273FCD8

坑 2:curl: (35) Recv failure: 连接被对方重置

坑 3:permission denied 连接 docker.sock

坑 4:拉取 hello-world 连接 refused

五、关键路径与常用命令

核心文件位置

常用运维命令

六、总结

七、后记


论文投稿:
第六届数字信号与计算机通信国际学术会议(DSCC 2026)
大会官网:https://ais.cn/u/Q7NFJr
大会时间:2026年4月10-12日
大会地点:中国-昆明

一、前言

在 Ubuntu 虚拟机部署 Docker 时,遇到了GPG 公钥验证失败、官方源连接重置、普通用户权限不足、拉取镜像连接拒绝等一系列问题。本文完整记录从安装到排错、配置加速的全过程,可直接复制命令使用。


二、环境准备

  • 系统:Ubuntu 24.04(VMware 虚拟机)
  • 目标:安装 Docker Engine + Docker Compose 插件
  • 核心问题:网络访问受限、密钥信任、用户权限、镜像仓库连通性

三、Docker 一键安装(国内源稳定版)

优先使用阿里云源,避免官方源网络报错。

# 1. 卸载旧版本(如有)
sudo apt remove docker docker-engine docker.io containerd runc -y

# 2. 安装依赖
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y

# 3. 导入阿里云 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 4. 添加阿里云 Docker 源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

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

# 6. 启动并开机自启
sudo systemctl enable docker
sudo systemctl start docker

# 7. 验证安装
docker -v
docker compose version
sudo systemctl is-active docker

四、实战踩坑与解决方案

坑 1:GPG 密钥错误 NO_PUBKEY 7EA0A9C3F273FCD8

现象apt update 提示无法验证签名,仓库无数字签名。原因:密钥未正确导入或源文件冲突。解决

# 清理旧密钥与源文件
sudo rm -f /etc/apt/keyrings/docker.gpg
sudo rm -f /etc/apt/sources.list.d/*docker*.list

# 手动导入密钥
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7EA0A9C3F273FCD8

# 重新添加国内源并更新
sudo apt update

坑 2:curl: (35) Recv failure: 连接被对方重置

现象:下载官方 GPG 密钥失败。原因:网络无法访问 Docker 官方站点。解决:全程使用阿里云 / 中科大镜像源,放弃官方源。

坑 3:permission denied 连接 docker.sock

现象:普通用户执行 docker 命令权限不足。原因:用户未加入 docker 用户组。解决

# 将当前用户加入 docker 组
sudo usermod -aG docker $USER

# 立即生效(无需重启)
newgrp docker

# 验证
docker ps

坑 4:拉取 hello-world 连接 refused

现象dial tcp 443: connect: connection refused原因:无法访问 Docker Hub 官方仓库。解决:配置国内镜像加速器。

# 创建配置目录
sudo mkdir -p /etc/docker

# 写入镜像源
sudo tee /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}
EOF

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

# 测试
docker run --rm hello-world

五、关键路径与常用命令

核心文件位置

  • Docker 配置:/etc/docker/daemon.json
  • 数据目录(镜像 / 容器):/var/lib/docker/
  • 套接字文件:/var/run/docker.sock
  • 源配置:/etc/apt/sources.list.d/docker.list

常用运维命令

# 查看状态
sudo systemctl status docker

# 重启/停止/启动
sudo systemctl restart docker
sudo systemctl stop docker
sudo systemctl start docker

# 查看镜像源
docker info | grep Mirrors

# 构建镜像(示例)
cd ~/buildozer
docker build -t my-buildozer:latest .

六、总结

  1. 国内网络优先用阿里云源,可避免 90% 密钥与连接问题。
  2. GPG 错误:清理旧密钥 + 重新导入 + 替换国内源。
  3. 权限 denied:用户加入 docker 组 + newgrp docker 即时生效。
  4. 镜像拉取失败:必须配置 daemon.json 镜像加速器。
  5. 安装完成后可直接用于编译构建、容器化开发等场景。

七、后记

本文为 Ubuntu 安装 Docker 的完整实战笔记,所有命令均经过真机验证,适合新手快速避坑部署。如有其他问题,欢迎在评论区交流。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐