Ubuntu 安装 Docker 全流程 + 踩坑实录|从安装到镜像加速一次搞定
本文详细记录了在Ubuntu 24.04虚拟机上安装Docker Engine及Docker Compose插件的过程,重点解决了国内环境下常见的GPG密钥验证失败、网络连接重置、用户权限不足和镜像拉取拒绝等问题。通过使用阿里云镜像源替代官方源,手动导入GPG密钥,将用户加入docker组,并配置国内镜像加速器,成功完成了Docker的稳定部署。文章提供了完整的安装命令和常见问题解决方案,包括关键
目录
坑 1:GPG 密钥错误 NO_PUBKEY 7EA0A9C3F273FCD8
坑 2:curl: (35) Recv failure: 连接被对方重置
坑 3:permission denied 连接 docker.sock
论文投稿:
第六届数字信号与计算机通信国际学术会议(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 .
六、总结
- 国内网络优先用阿里云源,可避免 90% 密钥与连接问题。
- GPG 错误:清理旧密钥 + 重新导入 + 替换国内源。
- 权限 denied:用户加入
docker组 +newgrp docker即时生效。 - 镜像拉取失败:必须配置
daemon.json镜像加速器。 - 安装完成后可直接用于编译构建、容器化开发等场景。
七、后记
本文为 Ubuntu 安装 Docker 的完整实战笔记,所有命令均经过真机验证,适合新手快速避坑部署。如有其他问题,欢迎在评论区交流。
更多推荐
所有评论(0)