docker-credential-desktop 未安装或在 PATH 中不可用
我的 Mac 上的 Docker 安装可能有点混乱。 起初我安装了 Docker 桌面版,但运行它后我发现,由于我使用的是较旧的 Mac,因此必须安装 VirtualBox,因此我按照以下步骤操作:
-
为用户启用
/usr/local/bin
文件夹的写入功能sudo chown -R $(whoami) /usr/local/bin
-
安装 Docker-Machine
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 安装并擦除/更正上述步骤所做的安装?
检查您的
~/.docker/config.json
并将“credsStore”替换为“credStore”
{
"stackOrchestrator" : "swarm",
"experimental" : "disabled",
"credStore" : "desktop"
}
在
~/.docker/config.json
中,只需将
credsStore
更改为
credStore
由于您使用的是 Mac,因此可以改用
docker-credential-osxkeychain
。
-
安装
docker-credential-helper
。brew install docker-credential-helper
-
验证
docker-credential-osxkeychain
是否可用。$ docker-credential-osxkeychain version 0.6.4
-
在
~/.docker/config.json
中将credsStore
设置为osxkeychain
{ "auths": { "https://index.docker.io/v1/": {} }, "credsStore": "osxkeychain", "experimental": "enabled", "stackOrchestrator": "swarm" }
-
登录 Docker Hub。
$ docker login -u $USER 密码: 登录成功