当前位置: 首页 > news >正文

Ubuntu 22.04 在 CloudCone 上安装 Docker 报错 gpg 密钥失效怎么办?

这个问题通常是 Docker 官方仓库的 GPG 密钥过期或存储路径变更导致的,直接按官方最新方式重新添加密钥即可解决,不需要更换系统或源。

先说结论:这是 Docker 官方密钥轮换或旧密钥过期引起的常见报错,在 Ubuntu 22.04 上按新规范重新配置密钥源即可修复。

  • 先确认:检查报错信息是否包含 GPG key expired 或 NO_PUBKEY
  • 先处理:移除旧密钥配置,使用 keyrings 目录重新添加官方密钥
  • 再验证:执行 apt update 无报错且能正常安装 docker-ce

命令速用版

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg `--dearmor` -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg `--print-architecture`) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update

为什么会这样

Docker 官方为了安全会定期轮换 GPG 密钥,旧密钥过期后 apt 会拒绝更新。此外,Ubuntu 22.04 及更新版本推荐使用 /etc/apt/keyrings 目录存放密钥,而不是旧的 /etc/apt/trusted.gpg.d,路径不对也会导致验证失败。CloudCone 的 VPS 系统本身是标准 Ubuntu 镜像,问题不在服务商,而在本地密钥配置。

分步处理

1. 清理旧配置:如果之前添加过 Docker 源,建议先清理残留,避免冲突。

sudo rm /etc/apt/keyrings/docker.gpg
sudo rm /etc/apt/sources.list.d/docker.list

2. 创建目录并下载密钥:确保目录存在且权限正确,下载官方公钥并转换为 gpg 格式。

3. 添加仓库源:将新的源地址写入配置文件,注意 signed-by 参数指向刚才生成的密钥文件。

4. 更新索引:执行 apt update,观察是否有 GPG 相关报错。

怎么验证是否生效

执行 sudo apt update,如果最后显示 Reading package lists... Done 且没有 NO_PUBKEY 或 EXPKEYSIG 警告,说明密钥正常。接着尝试安装:

sudo apt install docker-ce docker-ce-cli containerd.io

安装完成后运行 docker `--version` 能看到版本号即成功。

常见坑

1. 网络超时:下载密钥时如果连接超时,多试几次或检查 DNS 设置,不要随意更换非官方源。

2. 权限问题:密钥文件权限必须是可读的,否则 apt 无法验证。

3. 系统版本代号:确保 lsb_release -cs 获取的是 jammy(Ubuntu 22.04),否则源地址可能不对。

参考来源

Docker 官方安装文档 - Install Docker Engine on Ubuntu

https://docs.docker.com/engine/install/ubuntu/

原文链接:https://www.zjcp.cc/ask/10257.html

http://www.jsqmd.com/news/773940/

相关文章:

  • AI代理氛围感设计:从情感化交互到工程化实现
  • CodeSelect:AI编程助手专用代码分享工具,智能分析依赖关系
  • 你相信光吗?| Samtec助力AI/ML系统拓扑中的光连接
  • AI智能体执行引擎OpenClaw-Worker:从原理到实战部署
  • 【仅剩47席】SITS2026认证讲师私藏:AISMM评估模拟打分沙盘(含真实金融/医疗行业脱敏案例)
  • 观察不同模型在 Taotoken 平台上的实际调用响应速度
  • BepInEx终极指南:从零开始掌握游戏插件框架的完整秘籍
  • Prompt Poet:用结构化模板重构LLM提示词工程,告别字符串拼接
  • 甄别二手办公家具品质有哪些实用方法?
  • MCPJam Inspector:全栈MCP开发者的调试、评估与协作平台
  • 企业知识竞赛系统选型避坑指南
  • 基于TinyGo的ESP32 Go语言服务器开发:物联网边缘计算实践
  • wordpress 插件 Converter for Media 如何使用
  • 基于agentsrc-py框架的AI智能体开发:从原理到工程实践
  • Docker容器化入门:从核心概念到实战部署全解析
  • 长期运行的服务接入Taotoken后观察到的API可用性与容灾体验
  • 优势明显:电视浏览器相比专用APP的优势
  • WIN10系统介绍
  • 山东广电浪潮盒子刷机避坑指南:Hi3798MV310+ RTL8822BS 型号区分与WiFi功能恢复
  • ComfyUI-Impact-Pack技术深度解析:模块化图像增强与工作流自动化
  • AI开发环境标准化:ai-setup框架解决CUDA与Python依赖冲突
  • Eagle 2.5:长上下文视觉语言模型的数据策略与工程优化解析
  • 将hermes agent工具链与taotoken对接的配置要点详解
  • Anime4K终极指南:如何让动画视频实时高清化的完整教程
  • GetQzonehistory:如何一键永久备份你的QQ空间青春记忆
  • 知识竞赛软件SaaS版 vs 本地部署
  • 利用 Taotoken 的 OpenAI 兼容协议快速迁移现有应用代码
  • 履约链路被重新定价之后跨境卖家如何平衡周转与利润
  • 【一图看懂】Docker容器是什么(二) | 服务器篇2
  • 5分钟掌握百度网盘直链解析:告别龟速下载的终极方案