问题描述
在从 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
。
以下是具体步骤:
- 从 Docker 的 GitHub 仓库下载
docker-credential-pass
,下载地址:https://github.com/docker/docker-credential-helpers/releases。 - 解压下载的文件,可以使用以下命令:(假设文件名为
docker-credential-pass-vx.y.z-amd64.tar.gz
)
bash
tar xvf docker-credential-pass-vx.y.z-amd64.tar.gz
- 将解压后的
docker-credential-pass
文件移动到系统的可执行文件路径中,比如/usr/local/bin/
,使用以下命令(可能需要管理员权限):
bash
sudo mv docker-credential-pass /usr/local/bin/
- 确保
docker-credential-pass
可执行,使用以下命令:
bash
chmod a+x /usr/local/bin/docker-credential-pass
- 测试
docker-credential-pass
是否正常工作,使用以下命令:
bash
docker-credential-pass list
这将显示已配置的凭证列表。请注意,使用 docker-credential-pass
前,你需要在系统上配置一个 pass 密码存储库,使用命令 pass list
来测试。
- 最后,检查
$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,并且避免了许可费的问题。
注:本文提供的解决方案是基于用户提供的问题描述和已有回答,如有版本变动或其他问题,请根据实际情况进行调整。