【问题标题】:How Would I List All Google Container Registry Hostnames with the Cloud SDK?如何使用 Cloud SDK 列出所有 Google Container Registry 主机名?
【发布时间】:2022-01-26 19:14:45
【问题描述】:

如何使用 Cloud SDK (gcloud) 列出在给定 Google Cloud Platform (GCP) 项目中找到的所有不同 Google Container Registry (GCR) 主机名?

即,我如何列出 GCP 项目 $GCP_PROJECT_ID 的所有不同 GCR 主机名(例如,gcr.ious.gcr.io 等)?

【问题讨论】:

    标签: docker google-cloud-platform gcloud google-container-registry


    【解决方案1】:

    您无法在images 子组下使用list 命令[并且可能应用过滤器或转换],因为它仅列出gcr.io 主机名下的存储库:

    gcloud container images list
    
    #=>
    
    gcr.io/$GCP_PROJECT_ID/. . .
    . . .
    Only listing images in gcr.io/$GCP_PROJECT_ID. Use --repository to list images in other repositories.
    

    尝试应用通配符 (*) 会产生以下不利结果:

    • gcloud container images list --repository="*.gcr.io"
      
      #=>
      
      ERROR: (gcloud.container.images.list) A Docker registry domain must be specified.
      
    • gcloud container images list --repository="*.gcr.io/*"
      
      #=>
      
      ERROR: (gcloud.container.images.list) Invalid repository: *, must be at least 2 characters
      
    • gcloud container images list --repository="*.gcr.io/**"
      
      #=>
      
      ERROR: (gcloud.container.images.list) Invalid repository: **, acceptable characters include: abcdefghijklmnopqrstuvwxyz0123456789_-./
      
    • gcloud container images list --repository="*.gcr.io/$GCP_PROJECT_ID"
      
      #=>
      
      ERROR: (gcloud.container.images.list) *.gcr.io/$GCP_PROJECT_ID is not in a supported registry.  Supported registries are ['gcr.io', 'us.gcr.io', . . ., 'mirror.gcr.io', 'k8s.gcr.io']
      

    尝试对services 组使用list 命令:

    gcloud services list \
    --filter="name=projects/$GCP_PROJECT_NUMBER/services/containerregistry.googleapis.com" \
    --format=yaml \
    --project=$GCP_PROJECT_ID
    

    asset 组的search-all-resources 命令:

    gcloud asset search-all-resources \
    --format=yaml \
    --filter="name=//serviceusage.googleapis.com/projects/$GCP_PROJECT_NUMBER/services/containerregistry.googleapis.com" \
    --scope=projects/$GCP_PROJECT_ID
    

    也不透露任何有关活动主机名的信息。


    唯一的解决方案似乎是将list 命令的输出与asset 组通过管道传送到uniq

    gcloud asset list \
    --filter="assetType=containerregistry.googleapis.com/Image" \
    --format="value(name.split('/').slice(3, 4))" \
    --project=$GCP_PROJECT_ID | uniq
    
    #=>
    
    gcr.io
    us.gcr.io
    . . .
    mirror.gcr.io
    k8s.gcr.io
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      相关资源
      最近更新 更多