【问题标题】:gcloud auth configure-docker fail (config.json could not be read as JSON)gcloud auth configure-docker 失败(config.json 无法读取为 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。

标签: docker gcloud google-container-registry


【解决方案1】:

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

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

  1. 检查您的 docker 版本是否低于 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

然后你可以将 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-24
        • 2019-06-26
        • 1970-01-01
        • 2021-10-04
        • 2018-10-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多