在
.docker/config.json
中有 credStore
属性,显然 documentation 旨在指向外部凭证存储,例如操作系统的本机钥匙串,以查找要推送和拉取的注册表凭证图像往返。
但是在研究了该属性的值
desktop
后我找不到其含义。我不确定我之前做的一些配置是否自动添加了它。
"credsStore": "desktop"
我在 Windows 上使用 docker-desktop,在阅读了 来自 Docker Windows 桌面论坛的答案后,我发现在我的例子中 desktop 对应于 Windows 的凭据管理器。 我也得到了相同的结果:
docker-credential-desktop.exe list
docker-credential-wincred.exe list
这些 docker-desktop 命令可以在 Docker 下找到 资源位于 Docker 安装目录中。
我还检查了 Windows 下的“控制面板”中的“凭据管理器”设置,并找到了我的 docker 凭据。 干杯
看起来值desktop意味着在某些Docker桌面配置上查找凭据,因为我在Ubuntu上安装了Docker桌面,然后我手动卸载了它,但它在$HOME/.docker/config中留下了这个密钥对credsStore:desktop值。 json 文件。
几天后,我在没有 docker 桌面的情况下安装了 docker 引擎,当我尝试构建容器映像时,我收到了有关在找不到某些桌面文件中找不到凭据的错误。
错误:无法解决:节点:获取凭据时出错 - 错误:docker-credential-desktop 解析为当前目录(./docker-credential-desktop)中的可执行文件,输出:``
所以我记得几天前卸载了 Docker Desktop,并检查了 config.json 并发现 credsStore key 的值为“desktop”。我删除了该文件上的键/值对,保存了它,然后尝试再次构建我的容器映像,它运行顺利:)