正在搜索 Google Container Registry
Searching the Google Container Registry
我一直在设置我的 kubernetes 集群,我一直在使用 Google Container Registry 来存储图像。
作为设置的一部分,我正在构建一些工具,我需要在其中搜索远程存储库中的图像,包括标签。
所以我的问题是:
如何在 Google Cloud Registry 中搜索图像?
我曾尝试使用 docker
cli 进行搜索,但没有成功:
$ docker search eu.gcr.io/project-101
Error response from daemon: Unexpected status code 403
$ gcloud docker search eu.gcr.io/project-101
Error response from daemon: Unexpected status code 403
$ docker login -e not@val.id -u _token -p mytoken https://eu.gcr.io
WARNING: login credentials saved in /Users/drwho/.docker/config.json
Login Succeeded
$ docker search eu.gcr.io/project-101
Error response from daemon: Unexpected status code 403
$ docker search eu.gcr.io/not-known
Error response from daemon: Unexpected status code 404
如您所见,我尝试了很多不同的方法。最后一个选项可能是使用 Google 存储桶 API 并搜索文件系统 "manually"。
Docker 客户端到 1.7.0 只支持未经验证的搜索。例如,如果您搜索:
$ docker search gcr.io/google-containers/kube
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
google-containers/hyperkube 0
google-containers/kube-apiserver 0
google-containers/kube-controller-manager 0
google-containers/kube-scheduler 0
google-containers/kube-ui 0
google-containers/kube2sky 0
google-containers/kubectl 0
我向 1.8.0 提交了一个 PR,它将对搜索进行身份验证,并以类似的方式为私有存储库工作。
今天出现 403(禁止访问)是因为 Docker 客户端实际上没有通过 gcloud docker
或 docker login
.
设置的身份验证
编辑: 作为解决方法,只需卷曲端点也不错:
$ curl -u _token:TOKEN "https://gcr.io/v1/search?q=QUERY" | \
python -mjson.tool
您可以用 gcloud auth print-access-token
生成 TOKEN
。
我们支持 <project-id>[/image-substring]
形式的查询,例如google-containers/ube
将匹配 google-containers/kube2sky
.
奇怪的是,gcr.io 不以任何明显的方式支持搜索。使用 https://console.cloud.google.com/gcr/images/google-containers/GLOBAL 进行搜索。
我一直在设置我的 kubernetes 集群,我一直在使用 Google Container Registry 来存储图像。
作为设置的一部分,我正在构建一些工具,我需要在其中搜索远程存储库中的图像,包括标签。
所以我的问题是: 如何在 Google Cloud Registry 中搜索图像?
我曾尝试使用 docker
cli 进行搜索,但没有成功:
$ docker search eu.gcr.io/project-101
Error response from daemon: Unexpected status code 403
$ gcloud docker search eu.gcr.io/project-101
Error response from daemon: Unexpected status code 403
$ docker login -e not@val.id -u _token -p mytoken https://eu.gcr.io
WARNING: login credentials saved in /Users/drwho/.docker/config.json
Login Succeeded
$ docker search eu.gcr.io/project-101
Error response from daemon: Unexpected status code 403
$ docker search eu.gcr.io/not-known
Error response from daemon: Unexpected status code 404
如您所见,我尝试了很多不同的方法。最后一个选项可能是使用 Google 存储桶 API 并搜索文件系统 "manually"。
Docker 客户端到 1.7.0 只支持未经验证的搜索。例如,如果您搜索:
$ docker search gcr.io/google-containers/kube
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
google-containers/hyperkube 0
google-containers/kube-apiserver 0
google-containers/kube-controller-manager 0
google-containers/kube-scheduler 0
google-containers/kube-ui 0
google-containers/kube2sky 0
google-containers/kubectl 0
我向 1.8.0 提交了一个 PR,它将对搜索进行身份验证,并以类似的方式为私有存储库工作。
今天出现 403(禁止访问)是因为 Docker 客户端实际上没有通过 gcloud docker
或 docker login
.
编辑: 作为解决方法,只需卷曲端点也不错:
$ curl -u _token:TOKEN "https://gcr.io/v1/search?q=QUERY" | \
python -mjson.tool
您可以用 gcloud auth print-access-token
生成 TOKEN
。
我们支持 <project-id>[/image-substring]
形式的查询,例如google-containers/ube
将匹配 google-containers/kube2sky
.
奇怪的是,gcr.io 不以任何明显的方式支持搜索。使用 https://console.cloud.google.com/gcr/images/google-containers/GLOBAL 进行搜索。