gcloud auth configure-docker 失败(config.json 无法读取为 JSON)
Posted
技术标签:
【中文标题】gcloud auth configure-docker 失败(config.json 无法读取为 JSON)【英文标题】:gcloud auth configure-docker fail (config.json could not be read as JSON) 【发布时间】:2018-04-11 08:48:09 【问题描述】:我尝试将我的 docker 映像推送到 Google 容器注册表,但在 Ubuntu 16.04 上验证 gcloud 服务时出现错误:
$ gcloud auth configure-docker
这是我收到的错误消息:
ERROR: (gcloud.auth.configure-docker) Docker configuration file [/home
/username/.docker/config.json] could not be read as JSON: could not
retrieve Docker client version
我的 docker 版本是:
Client:
Version: 18.03.0-ce
API version: 1.37
Go version: go1.9.4
Git commit: 0520e24
Built: Wed Mar 21 23:10:01 2018
OS/Arch: linux/amd64
Experimental: false
Orchestrator: swarm
Server:
Engine:
Version: 18.03.0-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.4
Git commit: 0520e24
Built: Wed Mar 21 23:08:31 2018
OS/Arch: linux/amd64
Experimental: false
我在 Ubuntu 16.04 上尝试过其他版本:
$ apt-cache madison docker-ce
这些版本被缓存:
18.03.0~ce-0~ubuntu
17.12.1~ce-0~ubuntu
17.12.0~ce-0~ubuntu
17.09.1~ce-0~ubuntu
17.09.0~ce-0~ubuntu
17.06.2~ce-0~ubuntu
17.06.1~ce-0~ubuntu ...
我的 config.json 是:
"auths": ,
"credHelpers":
"asia.gcr.io": "gcr",
"eu.gcr.io": "gcr",
"gcr.io": "gcr",
"staging-k8s.gcr.io": "gcr",
"us.gcr.io": "gcr"
【问题讨论】:
这个错误表示gcloud找不到docker版本。运行 $ docker version --format '.Client.Version' 会发生什么? 你好 Kristen,我尝试了命令 $ docker version --format '.Client.Version',它显示 17.06.1~ce。我还将我的 docker 版本从 17.06.1~ce-0~ubuntu 更改为 18.03.0~ce-0~ubuntu 但这不起作用。 但是我有另一台使用 docker 1.13.1 的计算机,它可以将图像推送到 gcloud。 【参考方案1】:我在https://github.com/GoogleCloudPlatform/docker-credential-gcr/issues/10找到了答案。
我只是按照beatcracker回答的解决方案:
检查您的 docker 版本是否低于 18.03。如果要使用命令“$ gcloud docker -- push”,这是 gcloud sdk 的限制。
安装虚拟盒子安装docker-machine。
安装 docker-machine。
运行命令:$ docker-machine create default
运行命令:$ eval $(docker-machine env default)
运行命令:$ docker-credential-gcr configure-docker
运行命令:$ gcloud auth configure-docker
然后你可以将 docker 镜像推送到 gcr !
【讨论】:
【参考方案2】:我正在处理 GCP Cloud Shell 中的类似问题。
当我检查/home/username/.docker
文件夹时,我发现config.json
文件是空的。
删除文件并再次执行$ gcloud auth configure-docker
后,一切都按预期工作。
【讨论】:
【参考方案3】:在我的情况下,它只是意味着 docker 服务没有运行;显然~/.docker/config.json
文件仅在创建时才创建
要从终端解决此问题:sudo systemctl start docker.service
【讨论】:
以上是关于gcloud auth configure-docker 失败(config.json 无法读取为 JSON)的主要内容,如果未能解决你的问题,请参考以下文章
在 python 脚本中运行 gcloud auth 和 gsutil 命令
尝试运行 bigquery 时 gcloud auth 登录问题 403 访问被拒绝
gcloud auth configure-docker 失败(config.json 无法读取为 JSON)
gcloud auth activate-service-account [错误] 请确保提供的密钥文件有效