docker-credential-desktop 未安装或在 PATH 中不可用
Posted
技术标签:
【中文标题】docker-credential-desktop 未安装或在 PATH 中不可用【英文标题】:docker-credential-desktop not installed or not available in PATH 【发布时间】:2021-08-11 00:29:30 【问题描述】:我的 Mac 上的 Docker 安装可能有点混乱。 起初我安装了 Docker 桌面,但后来运行它,我了解到,由于我使用的是旧 Mac,所以我必须安装 VirtualBox,所以我按照以下步骤操作:
为用户启用在/usr/local/bin
文件夹上的写入
sudo chown -R $(whoami) /usr/local/bin
安装 Docker 机器
base=https://github.com/docker/machine/releases/download/v0.16.0 &&
curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/usr/local/bin/docker-machine &&
chmod +x /usr/local/bin/docker-machine
从开发帐户手动安装 Xcode CLI..
安装 Home Brew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装 Docker + wget(使用 Brew)
brew install docker
brew install wget
安装 bash 完成脚本
base=https://raw.githubusercontent.com/docker/machine/v0.16.0
for i in docker-machine-prompt.bash docker-machine-wrapper.bash docker-machine.bash
do
sudo wget "$base/contrib/completion/bash/$i" -P /etc/bash_completion.d
done
启用 docker-machine shell 提示符
echo 'PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '' >> ~/.bashrc
安装 VirtualBox、ExtensionPack 和 SDK:https://www.virtualbox.org/wiki/Downloads
我现在使用 home-brew 安装了 docker-compose(docker-compose 版本 1.29.2,构建未知),但是在运行 docker-compose up
时出现以下错误:
docker.credentials.errors.InitializationError: docker-credential-desktop not installed or not available in PATH
which docker
打印 /usr/local/bin/docker。
Brew 安装在 /usr/local/Cellar/docker/20.10.6
和 /usr/local/Cellar/docker-compose/1.29.2
中。
正如我所见,还有一个 docker-machine 的 home-brew 我应该通过 home-brew 安装 docker-machine 吗?
我可以检查什么以确保我使用 home-brew 中的 docker 安装并擦除/更正通过上述步骤进行的安装?
【问题讨论】:
你能试试this solution吗? @NickODell 我尝试过但没有用.. 但我发现了问题所在。谢谢 您的意思是ln -s "/Applications/Docker.app/Contents//Resources/bin/docker-credential-desktop" "/usr/local/bin/docker-credential-desktop"
命令?我没有运行该应用程序。它之前的帖子实际上说正确的 credStore 值取决于 Docker 版本。在我的情况下是Docker version 20.10.6, build 370c289
【参考方案1】:
检查您的 config.json 并将“credsStore”替换为“credStore”
"stackOrchestrator" : "swarm",
"experimental" : "disabled",
"credStore" : "desktop"
【讨论】:
是的,这确实是我已经发现并在我的答案中发布的问题,但感谢您的回答。干杯。~/.docker/config.json
准确地说是文件路径
这个解决方案在 macOS Catalina 上对我来说效果很好。【参考方案2】:
只需在 ~/.docker/config.json 中将 credsStore 更改为 credStore
【讨论】:
Ivan 如果您检查我自己的答案(已接受的答案),您会发现它也适用于 credsStore .. 问题在于价值.. 关键 这解决了我的问题,谢谢!【参考方案3】:经过长时间的谷歌搜索,我发现问题出在config.json
文件上。
"credsStore" : "docker-credential-desktop"
是错误的:
"credsStore" : "docker-credential-desktop",
"stackOrchestrator" : "swarm",
"experimental" : "disabled"
将 "credsDstore"
键值更改为 "desktop"
,现在 compose 可以按预期工作。有人指出credsDstore
错字是问题所在,并用credDstore
修复了它,但在我的情况下,值是问题所在,它适用于"credsStore" : "desktop"
和"credStore" : "desktop"
。
希望它能帮助其他人开始使用 Docker。 干杯。
【讨论】:
我正在寻找config.json
的位置。就我而言,它是~/.docker/config.json
。一般文档:docs.docker.com/engine/reference/commandline/cli/…【参考方案4】:
在尝试本地调用 aws lambda 函数时,我在 Windows 10 上使用 wsl2 时遇到了类似问题。我在运行sam build --use-container
时得到docker.credentials.errors.InitializationError: docker-credential-desktop not installed or not available in PATH
。运行which docker-credential-desktop
没有结果
经过进一步检查,我发现docker-credential-desktop.exe
在PATH
中。在快速谷歌之后,似乎在 Docker Desktop 中为 Windows 10 符号链接 wsl/docker-desktop/cli-tools/usr/bin/docker-credentials-desktop.exe
到 /usr/bin/docker-credential-desktop.exe
启用了 wsl2 后端。为了解决这个问题,我只是删除了符号链接并创建了一个没有.exe
的新链接
检查链接并将其删除:
user@device:~$ ls -l /usr/bin/docker-credential-desktop.exe
lrwxrwxrwx 1 root root 67 Jan 5 23:15 /usr/bin/docker-credential-desktop.exe -> /wsl/docker-desktop/cli-tools/usr/bin/docker-credential-desktop.exe
user@device:~$ sudo rm /usr/bin/docker-credential-desktop.exe
要创建一个没有.exe
的新文件并检查它是否有效:
user@device:~$ sudo ln -s /wsl/docker-desktop/cli-tools/usr/bin/docker-credential-desktop.exe /usr/bin/docker-credential-desktop
user@device:~$ ls -l /usr/bin/docker-credential-desktop
lrwxrwxrwx 1 root root 67 Jan 12 14:22 /usr/bin/docker-credential-desktop -> /wsl/docker-desktop/cli-tools/usr/bin/docker-credential-desktop.exe
之后,我使用 .bashrc
更新 PATH
并解决了问题。我用which docker-credential-desktop
验证了这一点,现在它显示了上面符号链接中指定的位置。
【讨论】:
以上是关于docker-credential-desktop 未安装或在 PATH 中不可用的主要内容,如果未能解决你的问题,请参考以下文章