gpg密钥错误本质是apt/yum无法验证docker仓库签名,非镜像本身问题;常见于apt update或yum install阶段,需导入正确公钥(如no_pubkey 7ea0a9c3f273fcd8)或换用国内镜像源修复。

遇到 Docker 镜像拉取时因 GPG 密钥冲突报错,本质不是镜像本身的问题,而是系统在验证软件源(比如 Docker 官方仓库)签名时失败。这类错误常见于 apt update 或 yum install 阶段,而非 docker pull 直接报错——但若底层包管理器无法正常安装/更新 Docker,后续拉取也会连带受阻。
确认是不是真由 GPG 密钥引发
先看报错关键词:
- NO_PUBKEY XXXXXXXX:说明系统缺少该公钥,最常见
- KEYEXPIRED 或 KEYREVOKED:密钥已过期或被撤销
- The following signatures couldn't be verified:签名验证失败,大概率是密钥不匹配或失效
- GPG key retrieval failed:尝试下载密钥时网络失败(如超时、404、被重置)
Ubuntu/Debian 系统:补全或更新 Docker 公钥
典型错误:NO_PUBKEY 7EA0A9C3F273FCD8
- 执行命令导入最新密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - 如果提示
gpg: can't open '': No such file or directory,说明gpg版本较新,改用:sudo mkdir -p /usr/share/keyrings && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - 检查是否生效:
apt update不再报 GPG 错误即可
CentOS/RHEL 系统:修复 yum 源与密钥同步
常见报错:GPG key retrieval failed: Cannot download https://...
- 优先换国内镜像源,避免连接 Docker 官方源失败:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo - 手动下载并导入密钥(阿里云源自带密钥):
sudo rpm --import https://mirrors.aliyun.com/docker-ce/linux/centos/gpg - 若仍提示密钥不匹配,检查
/etc/yum.repos.d/docker-ce.repo中的gpgkey=行是否指向有效 URL,推荐改为:gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
别跳过验证,但可临时绕过(仅限测试环境)
跳过 GPG 检查虽快,但会关闭完整性校验,生产环境严禁使用。
- Ubuntu:
sudo apt update --allow-unauthenticated(不推荐) - CentOS:
yum install docker-ce --nogpgcheck(仅调试用) - 更稳妥的做法:用
rpm -qa gpg-pubkey*查看已装密钥,结合rpm -qi gpg-pubkey-xxxxxx确认指纹和有效期,针对性替换
根本上,GPG 冲突不是 Docker 镜像拉取环节的问题,而是包管理器安装 Docker 时信任链断裂。解决密钥问题后,docker pull 就能回归正常流程。镜像加速器配置(如阿里云、USTC)可同步做,但和 GPG 错误无直接关系。











