You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu EC2执行docker pull拉AWS ECR镜像报Secret.Collection接口不存在如何解决

问题现象

在Ubuntu系统EC2实例上执行docker pull从AWS ECR拉取容器镜像时触发凭证存储报错,报错信息如下:

Error saving credentials: error storing credentials - err: exit status 1, out: No such interface 'org.freedesktop.Secret.Collection' on object at path /org/freedesktop/secrets/collection/login

对应报错截图:Docker凭证存储报错截图

故障原因

Docker默认会调用系统freedesktop Secret Service(对应gnome-keyring、pass这类凭证存储组件)保存仓库登录凭证,但无图形界面的Ubuntu Server版EC2实例默认不安装、不运行该桌面级密钥服务,导致docker凭证助手调用接口失败,无法写入ECR登录信息。

解决步骤
  • 检查Docker凭证配置
    执行以下命令查看当前Docker客户端配置:
    cat ~/.docker/config.json
    
    如果配置中存在"credsStore": "secretservice"或"credsStore": "pass"字段,即可确认是该配置触发的报错。
  • 清除无效凭证存储配置(无GUI服务器场景首选方案)
    无图形界面的服务器场景不需要依赖桌面密钥环存储凭证,直接删除无效配置即可:
    rm ~/.docker/config.json
    
    注意:该操作会清除本地已保存的所有Docker仓库登录凭证,操作前确认无需要留存的自定义仓库登录信息。如果需要保留其他配置,可以手动编辑config.json文件,仅删除credsStore对应的配置行即可。
  • 重新登录ECR仓库
    配置清除后,通过AWS CLI重新执行ECR登录操作,替换命令中占位符为你实际的账号ID、ECR所在地域:
    aws ecr get-login-password --region <ECR地域,例如cn-north-1> | docker login --username AWS --password-stdin <AWS账号ID>.dkr.ecr.<ECR地域>.amazonaws.com.cn
    
    海外区域AWS去掉命令末尾的.cn后缀即可。
  • 验证拉取功能
    登录成功后重新执行docker pull命令拉取目标镜像,即可正常执行。
  • 可选方案(需保留密钥环存储场景)
    如果业务要求必须使用secret服务存储凭证,可以手动安装缺失的组件:
    sudo apt update && sudo apt install -y gnome-keyring pass dbus-x11
    
    安装完成后配置dbus会话环境、初始化pass密钥存储即可正常调用,该方案需要额外维护密钥环解锁逻辑,无图形界面生产环境不推荐使用。

内容的提问来源于stack exchange,提问作者Prakash Dutta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 05:27:47