我试图将Google Container Registry中的Docker图像转换为Google Compute Engine实例.(我需要的图像已成功上传到GCR.)
我已经登录使用gcloud auth login
,然后尝试了gcloud docker pull -- us.gcr.io/app-999/app
哪些结果ERROR: (gcloud.docker) Docker is not installed.
.
我尝试使用oauth进行身份验证并通过普通的docker调用进行调用.当我查看文件时,我看到了我的凭据.docker/config.json
.这样做,看起来它会起作用,但最终会像这样结束:
mbname@instance-1 ~ $ docker pull -- us.gcr.io/app-999/app
Using default tag: latest
latest: Pulling from app-999/app
b7f33cc0b48e: Pulling fs layer
43a564ae36a3: Pulling fs layer
b294f0e7874b: Pulling fs layer
eb34a236f836: Waiting
error pulling image configuration: unauthorized: authentication required
看起来像进步,因为至少它试图下载一些东西.
我已经在我的本地机器上尝试了这两种方法,两种方法都是成功的.
我错过了什么吗?
谢谢你的帮助.
PS我也尝试从另一个注册表(Docker Hub)加载一个容器,并且工作正常,但我需要多个容器,并希望降低费用.
联系Google支持后,他们告诉我CoreOS gcloud
别名中存在错误.通过覆盖shell中的别名来修复此错误,如下所示:
alias gcloud='(docker images google/cloud-sdk || docker pull google/cloud-sdk) > /dev/null;docker run -t -i --net=host -v $HOME/.config:/.config -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker google/cloud-sdk gcloud'
我试过这个,它现在有效.