gcloud auth configure-docker失败(config.json无法读取为JSON)

时间:2018-04-11 08:48:10

标签: docker gcloud google-container-registry

我尝试将我的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

我的码头版本是:

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"
 }
}

3 个答案:

答案 0 :(得分:1)

我在https://github.com/GoogleCloudPlatform/docker-credential-gcr/issues/10找到答案。

我只是按照beatcracker回答的解决方案:

  1. 检查您的泊坞窗版本是否低于18.03。如果你想使用命令" $ gcloud docker - push"这是对gcloud sdk的限制。

  2. 安装虚拟盒以安装docker-machine。

  3. 安装docker-machine。

  4. 运行命令:$ docker-machine create default

  5. 运行命令:$ eval $(docker-machine env default)

  6. 运行命令:$ docker-credential-gcr configure-docker

  7. 运行命令:$ gcloud auth configure-docker

  8. 然后您可以将泊坞窗图像推送到gcr!

答案 1 :(得分:1)

我正在处理GCP Cloud Shell中的类似问题。 当我检查/home/username/.docker文件夹时,发现config.json文件为空。

删除文件并再次执行$ gcloud auth configure-docker后,一切正常。

答案 2 :(得分:0)

就我而言,这仅表示Docker服务未运行;显然,~/.docker/config.json文件只有在创建时才创建

要从终端进行补救:sudo systemctl start docker.service