我尝试将我的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"
}
}
答案 0 :(得分:1)
我在https://github.com/GoogleCloudPlatform/docker-credential-gcr/issues/10找到答案。
我只是按照beatcracker回答的解决方案:
检查您的泊坞窗版本是否低于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
然后您可以将泊坞窗图像推送到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