`docker-credential-gcloud`不在系统路径中

Zax*_*axR 36 docker google-cloud-platform gcloud google-kubernetes-engine google-container-registry

在对gcloud和docker进行最新更新后,我无法访问google容器存储库中的图像.本地运行时:gcloud auth configure-docker根据更新gcloud后的说明,我收到以下消息:

WARNING: `docker-credential-gcloud` not in system PATH.
gcloud's Docker credential helper can be configured but it will not work until this is corrected.
gcloud credential helpers already registered correctly.
Run Code Online (Sandbox Code Playgroud)

运行which docker-credential-gcloud回报docker-credential-gcloud not found.

我没有其他与gcloud相关的路径问题,因为我的生活无法弄清楚如何安装/添加docker-credential-gcloud到路径.这是我安装的(显示通过gcloud version):

Google Cloud SDK 197.0.0
beta 2017.09.15
bq 2.0.31
container-builder-local
core 2018.04.06
docker-credential-gcr
gsutil 4.30
Run Code Online (Sandbox Code Playgroud)

我也有Docker CE版本18.03.0-ce-mac60(23751).

这是我的$ PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

我还运行source /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc了原始的gcloud安装.

Xiw*_* Li 49

注意:docker-credential-gcr以下所有内容均可替换为docker-credential-gcloud.我认为这只是gcloud的不同版本,我可能错了.

我使用Homebrew Cask来安装gcloud.我安装docker-credential-gcr

$ gcloud components install docker-credential-gcr
Run Code Online (Sandbox Code Playgroud)

就像你说的那样,which docker-credential-gcr并没有给你任何东西.

所以我跑去which gcloud发现gcloud中有一个符号链接/usr/local/bin.当你在第一个位置安装gcloud时,这个符号链接是由Homebrew创建的.现在docker-credential-gcr没有被Homebrew安装,而是由gcloud本身安装,因此没有符号链接.

我打电话readlink /usr/local/bin/gcloud,发现安装了gcloud /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin/.

然后:

$ ls /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin
Run Code Online (Sandbox Code Playgroud)

那里你应该看到docker-credential-gcr那里列出.

我只是将它链接到/usr/local/bin:

$ ln -s /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin/docker-credential-gcr /usr/local/bin/
Run Code Online (Sandbox Code Playgroud)

然后运行:

$ docker-credential-gcr configure-docker
Run Code Online (Sandbox Code Playgroud)

它应该成功.

  • 这个答案几乎对我有用,但需要调整。符号链接步骤似乎有一个过时/错别字。它引用了`docker-credential-gcr`而不是`docker-credential-gcloud`。如下更新该步骤对我有用。`$ ln -s /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin/docker-credential-gcloud /usr/local/bin/` (7认同)
  • 对我来说,它不在 `/usr/local/Caskroom/` 中,而是在 `/snap/` 中(使用 ubuntu) (2认同)

Mil*_*len 23

刚刚在 Windows 上遇到了同样的问题,使用 Linux 容器运行 Docker,Docker 引擎 v19.03.8。使用 docker 撰写。我的 dockerfiles 没有使用 gcloud ......

DT1001 dockerpycreds.errors.InitializationError: docker-credential-gcloud 未安装或在 PATH 中不可用

  1. 选项 1:编辑 docker 配置文件并gcloud从中删除所有条目。

    • 视窗 c:/Users/<your account>/.docker/config.json

    • Linux 和 MacOS ~/.docker/config.json

  2. 选项 2:转至疑难解答 -> 重置为出厂默认设置。

在此之后,我的 docker compose 正在创建容器并运行图像而没有任何问题。

  • 我必须将 credHelpers 设为空 `"credHelpers":{}`。谢谢对我有用。 (2认同)

小智 7

在 MacOS 上

\n

步骤1\xef\xbc\x9a

\n

安装 gcloud 和 docker-credential-gcr,\n按照本教程进行操作

\n

第2步:

\n
$ ln -s /usr/local/google-cloud-sdk/bin/docker-credential-gcr /usr/local/bin/docker-credential-gcloud\n
Run Code Online (Sandbox Code Playgroud)\n

步骤3:

\n
$ rm -rf ~/.docker\n
Run Code Online (Sandbox Code Playgroud)\n

步骤4:

\n
$ docker-compose build --pull\n
Run Code Online (Sandbox Code Playgroud)\n

完成的!

\n