错误:3 https://download.docker.com/linux/ubuntu jammy InRelease 由于没有公钥,无法验证下列签名:
时间: 2025-04-05 19:00:53 浏览: 100
### Docker 在 Ubuntu Jammy 上因缺少公钥导致无法验证签名的问题解决方案
当在 Ubuntu Jammy (22.04 LTS) 使用 Docker 拉取镜像时遇到 `missing public key` 或类似的签名验证错误,通常是因为系统的 GPG 密钥库中缺失了用于验证 Docker 官方仓库的密钥。以下是具体的解决方法:
#### 1. 更新并配置 APT 软件源
确保系统软件包是最新的,并启用官方 Docker 的 APT 存储库。
```bash
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
```
此操作会安装必要的工具来管理 GPG 密钥以及访问远程存储库[^1]。
---
#### 2. 添加 Docker 官方 GPG 密钥
如果当前系统未正确导入 Docker 的官方 GPG 密钥,则可能会触发签名验证失败的错误。通过以下命令添加最新的 GPG 密钥:
```bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
```
这条命令下载 Docker 提供的 GPG 密钥文件,并将其转换为二进制格式以便后续使用[^3]。
---
#### 3. 设置稳定的 Docker APT 存储库
为了确保能够从正确的存储库获取最新版 Docker 及其依赖项,需设置对应的 APT 配置文件:
```bash
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
```
上述脚本指定了适用于当前发行版 (`$(lsb_release -cs)` 对应的是 `jammy`) 的稳定版本 Docker 存储库地址[^2]。
---
#### 4. 安装或更新 Docker
完成以上步骤后,可以安全地安装或升级 Docker 到最新版本:
```bash
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
```
这一步骤将自动处理所有必需的依赖关系,并修复可能存在的旧版本兼容性问题。
---
#### 5. 测试拉取功能
最后测试是否能正常拉取镜像而不再出现 `missing signature key` 类型的错误:
```bash
sudo docker pull hello-world
```
如果一切顺利,应该可以看到成功运行的消息输出。
---
### 注意事项
对于 CentOS 用户而言,该类问题通常是由于默认 YUM 源中的 Docker 版本过低所致;而对于 Ubuntu 系统来说,更多时候是缺乏有效的 GPG 密钥支持造成的。因此,在不同操作系统环境下采取相应的措施尤为重要。
---
阅读全文
相关推荐
















