gpt4 book ai didi

docker - Google Container Registry 的 gcloud API 是什么

转载 作者:行者123 更新时间:2023-12-04 18:34:48 25 4
gpt4 key购买 nike

我必须列出在某个项目中发布的 Docker 容器镜像,但我无法使用 gcloud 找到合适的 API命令行工具。这可能吗?

是否有任何其他解决方案可以在我的 Google 项目中列出来自此私有(private)容器注册表的容器镜像?

最佳答案

您可以使用“gcloud docker search / ”列出图像。主机名应该是“gcr.io”或“us.gcr.io”或任何您的图像创建下。请注意,您必须遍历所有可能的主机才能找到项目下的所有图像。但是,此方法仅列出存储库,不会列出标签或 list 。

您也可以直接使用注册表 API 来执行此操作,它将返回更多信息。使用以下脚本作为入门指南:

#!/bin/bash

HOSTS="gcr.io us.gcr.io eu.gcr.io asia.gcr.io"
PROJECT=your-project-id

function search_gcr() {
local fullpath=""
local host=$1
local project=$2
if [[ -n $3 ]]; then
fullpath=${3}
fi
local result=$(curl -u _token:$(gcloud auth print-access-token) \
--fail --silent --show-error \
https://${host}/v2/${project}${fullpath}/tags/list)
if [[ -z $result ]]; then
printf ""
else
printf $result
fi
}

function recursive_search_gcr() {
local host=$1
local project=$2
local repository=$3
local result=$(search_gcr $host $project ${repository})
local returnVal=$?
if [[ -z $result ]]; then
echo Not able to curl: https://${host}/v2/${project}${fullpath}/tags/list
return
fi
local children="$(python - <<EOF
import json
import sys
obj = json.loads('$result')
if 'child' in obj:
print ' '.join(obj['child'])
else:
print ''
EOF
)"

for child in $children;
do
recursive_search_gcr $host $project ${repository}/${child}
done
local manifests="$(python - <<EOF
import json
import sys
obj = json.loads('$result')
if 'manifest' in obj:
print ' '.join(obj['manifest'])
else:
print ''
EOF
)"
echo Repository ${host}/${project}$repository:
echo " manifests:"
for manifest in $manifests
do
echo " "$manifest
done
echo

local tags="$(python - <<EOF
import json
import sys
obj = json.loads('$result')
if 'tags' in obj:
print ' '.join(obj['tags'])
else:
print ''
EOF
)"
echo " tags:"
for tag in $tags
do
echo " "$tag
done
echo
}

for HOST in $HOSTS;
do
recursive_search_gcr $HOST $PROJECT
done

关于docker - Google Container Registry 的 gcloud API 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36009399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com