docker-credential-desktop未安装或在PATH中不可用

a8jjtwal  于 2023-02-11  发布在  Docker
关注(0)|答案(6)|浏览(319)

我可能有一个混乱的Docker安装在我的Mac上有点..起初我安装Docker桌面,但后来运行它,我了解到,因为我在一个旧的Mac上,我必须安装VirtualBox,所以我没有按照这些步骤:
1.允许用户在/usr/local/bin文件夹上写入
sudo chown -R $(whoami) /usr/local/bin
1.安装对接机

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

1.从开发人员帐户手动安装Xcode CLI ..
1.安装自制啤酒

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

1.安装Docker + wget(使用Brew)
brew install docker
brew install wget
1.安装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

1.启用docker-machine shell提示符
echo 'PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '' >> ~/.bashrc
1.安装VirtualBox、扩展包和SDK:https://www.virtualbox.org/wiki/Downloads
我现在安装了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打印/用户/本地/纸盒/文件夹。
brew安装在/usr/local/Cellar/docker/20.10.6/usr/local/Cellar/docker-compose/1.29.2中。我看到也有一个自制的docker-machine,我应该通过自制来安装docker-machine吗?
我可以检查什么来确保我使用的是自制的Docker安装程序,并擦除/更正上述步骤中的安装程序?

2guxujil

2guxujil1#

检查您的~/.docker/config.json并将“credsStore”替换为“credsStore”

{
  "stackOrchestrator" : "swarm",
  "experimental" : "disabled",
  "credStore" : "desktop"
}
t9eec4r0

t9eec4r02#

刚刚在~/. docker/config.json中将信用存储更改为信用存储

brjng4g3

brjng4g33#

经过长时间的谷歌搜索,我发现问题出在config.json文件上。"credsStore" : "docker-credential-desktop"是错误的一个在:

{
  "credsStore" : "docker-credential-desktop",
  "stackOrchestrator" : "swarm",
  "experimental" : "disabled"
}

"credsStore"键值更改为"desktop",合成现在可以按预期工作。有些人指出credsDstore错字是问题所在,并使用credDstore修复了它,但在我的情况下,值是问题所在,它同时适用于"credsStore" : "desktop""credStore" : "desktop"
希望它能帮助其他人从Docker开始。干杯。

mrwjdhj3

mrwjdhj34#

由于您使用的是Mac,因此可以使用docker-credential-osxkeychain
1.安装docker-credential-helper

brew install docker-credential-helper

1.验证docker-credential-osxkeychain是否可用。

$ docker-credential-osxkeychain version
0.6.4

1.在~/.docker/config.json中将credsStore设置为osxkeychain

{
  "auths": {
    "https://index.docker.io/v1/": {}
  },
  "credsStore": "osxkeychain",
  "experimental": "enabled",
  "stackOrchestrator": "swarm"
}

1.登录到Docker Hub。

$ docker login -u $USER
Password: 
Login Succeeded
2guxujil

2guxujil5#

我在windows10上使用wsl2时遇到了类似的问题,当我试图本地调用aws lambda函数时,我在运行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.exePATH中。快速搜索后,似乎在Docker Desktop中为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验证了这一点,它现在显示了上面符号链接中指定的位置。

wi3ka0sx

wi3ka0sx6#

如果你使用的是WSL,尝试desktop.exe,而不是desktop,因为你会发现/usr/bin/中的程序是docker-credential-desktop.exe

{
   "credsStore": "desktop.exe"
}

相关问题