解决 Docker-credential-desktop.exe 未安装的问题

96次阅读
没有评论

问题描述

在从 Docker Desktop for Windows 切换到 Docker Server / CLI for Linux 以避免许可费时,用户遇到了问题。他按照 Ubuntu 的官方文档在 WSL2 中安装了 Docker,但在使用 docker-compose 时出现了问题。具体的错误信息如下所示:

docker.credentials.errors.InitializationError: docker-credential-desktop.exe not installed or not available in PATH

用户想知道如何修复这个错误,继续在 Linux 环境下使用 Docker。

解决方案

请注意以下操作可能因版本差异而有所变化,请根据实际情况进行调整。

方案1:使用 docker-credential-pass 代替 docker-credential-desktop

当你卸载 Docker Desktop for Windows 时,可能会丢失一些 exe 文件,包括 docker-credential-desktop.exe。但你仍然需要一个用于 docker login 部分的凭证存储器。

根据官方文档提供的信息,有几种替代方案可供选择。在这里,我们将介绍如何使用 docker-credential-pass

以下是具体步骤:

  1. 从 Docker 的 GitHub 仓库下载 docker-credential-pass,下载地址:https://github.com/docker/docker-credential-helpers/releases
  2. 解压下载的文件,可以使用以下命令:(假设文件名为 docker-credential-pass-vx.y.z-amd64.tar.gz

bash
tar xvf docker-credential-pass-vx.y.z-amd64.tar.gz

  1. 将解压后的 docker-credential-pass 文件移动到系统的可执行文件路径中,比如 /usr/local/bin/,使用以下命令(可能需要管理员权限):

bash
sudo mv docker-credential-pass /usr/local/bin/

  1. 确保 docker-credential-pass 可执行,使用以下命令:

bash
chmod a+x /usr/local/bin/docker-credential-pass

  1. 测试 docker-credential-pass 是否正常工作,使用以下命令:

bash
docker-credential-pass list

这将显示已配置的凭证列表。请注意,使用 docker-credential-pass 前,你需要在系统上配置一个 pass 密码存储库,使用命令 pass list 来测试。

  1. 最后,检查 $HOME/.docker/config.json 文件,确保配置中使用了 pass,具体来说是 credsStore 配置项,如下所示:

json
"credsStore": "pass"

通过将 credsStore 配置为 pass,你告诉 Docker 使用 docker-credential-pass 来管理凭证存储。

通过以上步骤,你应该能够成功解决 docker-credential-desktop.exe not installed 的问题,从而在 Linux 环境下继续使用 Docker 而不受许可费的影响。

提示:使用 docker-credential-pass 需要预先配置一个 pass 密码存储库,请确保你已经进行了相应的设置。

方案2:其他凭证存储器替代方案

除了使用 docker-credential-pass 之外,官方文档还提到了其他几种凭证存储器替代方案。具体如何操作可参考 Docker 的官方文档:docker login –credentials-store

通过采用以上方案,你应该能够成功解决在切换到 Docker Server / CLI for Linux 后遇到的 docker-credential-desktop.exe not installed 错误,让你能够愉快地继续使用 Docker,并且避免了许可费的问题。

注:本文提供的解决方案是基于用户提供的问题描述和已有回答,如有版本变动或其他问题,请根据实际情况进行调整。

正文完