IBM Cloud Docs
格式化并过滤 Container Registry 命令行界面输出

格式化并过滤 Container Registry 命令行界面输出

您可以格式化并过滤 IBM Cloud® Container Registry CLI输出,以获得支持的 IBM Cloud Container Registry 命令。

缺省情况下,CLI 输出会以人类可读的格式显示。 但是,此视图可能会限制您使用输出的能力,尤其是在以编程方式运行命令的情况下。 例如,在 ibmcloud cr image-list CLI输出中,您可能希望按数字顺序对 Size 字段进行排序,但命令返回的是字符串描述。 container-registry CLI 插件提供了 format 选项,可用于将 Go 模板应用于 CLI 输出。 Go模板是 Go编程语言的一项功能,可用于自定义CLI输出。

可以通过两种不同方式应用 format 选项来变更 CLI 输出:

  • 设置 CLI 输出中数据的格式。 例如,将 Created 字段输出从UNIX®时间更改为标准时间。
  • 过滤 CLI 输出中的数据。 例如,通过使用 Go 模板 if gt 条件,按映像详细信息进行过滤以显示特定映像子集。

可以将 format 选项用于以下 IBM Cloud Container Registry 命令。 单击命令可查看可用字段及其数据类型的列表。

以下代码示例演示了可如何对选项进行格式设置和过滤。

  • 运行以下 ibmcloud cr image-digests 命令,显示摘要中引用的所有未标记的图像。

    ibmcloud cr image-digests --format '{{if not .Tags}}{{.Repository}}@{{.Digest}}{{end}}'
    

    以下信息是命令输出的示例

    example-<region>.icr.io/user1/my_first_repo@<digest1>
    example-<region>.icr.io/user1/my_first_repo@<digest2>
    example-<region>.icr.io/user1/my_first_repo@<digest3>
    
  • 运行以下 ibmcloud cr image-list 命令,显示所有大小超过1MB的已标记图片的存储库、标签和安全状态。

    ibmcloud cr image-list --format "{{ if gt .Size 1000000 }}{{ .Repository }}:{{ .Tag }} {{ .SecurityStatus.Status }}{{end}}"
    

    以下消息是命令输出的示例:

    example-<region>.icr.io/user1/my_first_repo:latest No Issues
    example-<region>.icr.io/user1/my_second_repo:1 2 Issues
    example-<region>.icr.io/user1/my_second_repo:test1 1 Issue
    example-<region>.icr.io/user1/my_second_repo_2:test2 7 Issues
    

    如果列表图片超时,请参阅 “为什么列出图片时会出现超时?” 以获取帮助。

  • 运行以下 ibmcloud cr image-inspect 命令,显示指定 IBM 公共图片的 IBM 文档所在位置。

    ibmcloud cr image-inspect ibm_public_image --format "{{ .ContainerConfig.Labels }}"
    

    以下消息是命令输出的示例:

    map[doc.url:/docs/images/docker_image_ibm_public_image/ibm_public_image_starter.html]
    
  • 运行以下 ibmcloud cr image-inspect 命令,显示指定镜像的暴露端口。

    ibmcloud cr image-inspect ibm_public_image --format "{{ .Config.ExposedPorts }}"
    

    以下消息是命令输出的示例:

    map[9080/tcp: 9443/tcp:]
    

转到模板选项 ibmcloud cr image-digests

查看下表,了解 ibmcloud cr image-digests 命令的可用Go模板选项和数据类型。

Container Registry 命令中列出图像摘要的可用字段和数据类型
字段 Type 描述
Created 整数(64 位) 显示图像创建的时间,以UNIX时间秒数表示。
Digest 字符串 显示映像的唯一标识。
ManifestType 字符串 显示映像清单类型。
Repository 字符串 显示映像的存储库。
SecurityStatus 对象 显示映像的漏洞状态。 您可以过滤和格式化以下值:

  • Statusstring
  • IssueCountint
  • 可能的状况在《使用CLI审查漏洞报告》中进行了描述。 ExemptionCountint

使用CLI查看漏洞报告时 ,可能的状态如下所述。

Size 整数(64 位) 显示映像的大小(以字节为单位)。
Tags 字符串数组 显示图片的标签。

转到模板选项 ibmcloud cr image-list

查看下表,了解 ibmcloud cr image-list 命令的可用Go模板选项和数据类型。

Container Registry 命令中列出图片的可用字段和数据类型
字段 Type 描述
Created 整数(64 位) 显示图像创建的时间,以UNIX时间秒数表示。
Digest 字符串 显示映像的唯一标识。
ManifestType 字符串 显示映像清单类型。
Namespace 字符串 显示存储映像的名称空间。
Repository 字符串 显示映像的存储库。
SecurityStatus 对象 显示映像的漏洞状态。 您可以过滤和格式化以下值:

  • Statusstring
  • IssueCountint
  • 可能的状况在《使用CLI审查漏洞报告》中进行了描述。 ExemptionCountint

使用CLI查看漏洞报告时 ,可能的状态如下所述。

Size 整数(64 位) 显示映像的大小(以字节为单位)。
Tag 字符串 显示映像的标记。

转到模板选项 ibmcloud cr image-inspect

查看下表,了解 ibmcloud cr image-inspect 命令的可用Go模板选项和数据类型。

Container Registry 命令中可用于检查图像的字段和数据类型
字段 Type 描述
Architecture 字符串 显示用于构建此映像以及运行此映像所需的处理器体系结构。
Author 字符串 显示映像的创建者。
Comment 字符串 显示映像的描述。
Config 对象 显示映像的配置元数据。 更多信息,请参阅 Config 字段详情
Container 字符串 显示已创建映像的容器的标识。
ContainerConfig 对象 显示基于此映像启动的容器的缺省配置。 更多信息,请参阅 Config 字段详情
Created 字符串 显示图像创建时的 UNIX 时间戳。
DockerVersion 字符串 显示用于构建此映像的 Docker 版本。
ID 字符串 显示映像的唯一标识。
Os 字符串 显示用于构建此映像以及运行此映像所需的操作系统系列。
OsVersion 字符串 显示用于构建此映像的操作系统版本。
Parent 字符串 显示用于构建此映像的父映像的标识。
RootFS 对象 显示描述镜像根文件系统的元数据。 更多信息,请参阅 RootFS 字段详情
Size 整数(64 位) 显示映像的大小(以字节为单位)。
VirtualSize 整数(64 位) 显示映像中每层大小的总和(以字节为单位)。

Config 字段详细信息

配置中的可用字段和数据类型
字段 Type 描述
ArgsEscaped 布尔值 Windows 如果命令被转义,则显示_为真_ (Windows® 特有)。
AttachStderr 布尔值 如果标准误差流连接到容器,则显示为 true,否则显示_为false_。
AttachStdin 布尔值 如果标准输入流连接到容器,则显示为 true,否则显示_为false_。
AttachStdout 布尔值 如果标准输出流连接到容器,则显示_为true_,否则_为false_。
Cmd 字符串数组 描述传递给容器以在启动容器时运行的命令和自变量。
Domainname 字符串 显示容器的标准域名。
Entrypoint 字符串数组 描述在容器启动时运行的命令。
Env 字符串数组 显示环境变量的列表,格式为键/值对。
ExposedPorts 键/值映射 显示已公开端口的列表,格式为 [123:,456:]
Healthcheck 对象 描述如何检查容器是否正常工作。 更多信息,请参阅 Healthcheck 字段详情
Hostname 字符串 显示容器的主机名。
Image 字符串 显示操作程序传递的映像的名称。
Labels 键/值映射 显示作为键/值对添加到映像的标签的列表。
MacAddress 字符串 显示分配给容器的 MAC 地址。
NetworkDisabled 布尔值 如果容器禁用网络连接,则显示为 true,如果容器启用网络连接,则显示为 false
OnBuild 字符串数组 显示在图像Dockerfile中定义的 ONBUILD 元数据。
OpenStdin 布尔值 如果标准输入流打开,则显示为 true,如果标准输入流关闭,则显示为 false
Shell 字符串数组 显示 RUNCMDENTRYPOINT 的外壳形式。
StdinOnce 布尔值 如果标准输入流在连接的客户端断开连接后关闭,则显示为 true,如果标准输入流保持打开状态,则显示_为false_。
StopSignal 字符串 描述了在何时停止容器时发送的UNIX®停止信号。
StopTimeout 整数 显示停止容器的超时(以秒为单位)。
Tty 布尔值 如果容器分配了 pseudo-tty,则显示为 true,否则_为false_。
User 字符串 显示在使用映像的容器内部运行命令的用户。
Volumes 键/值映射 显示安装到容器的卷安装的列表。
WorkingDir 字符串 显示运行指定命令的容器内部的工作目录。

Healthcheck 字段详细信息

健康检查中的可用字段和数据类型
字段 Type 描述
Interval 整数(64 位) 显示两次运行状况检查之间等待的时间(以纳秒为单位)。
Retries 整数 显示将容器视为工作不正常所需的连续失败次数。
Test 字符串数组

显示如何运行运行状况检查测试。 以下选项可供选择。

  • {} 继承健康检查。
  • {"NONE"} 禁用健康检查。
  • {"CMD", args...} 直接执行参数。
  • {"CMD-SHELL", command} 使用系统的默认外壳运行命令。
Timeout 整数(64 位) 显示健康检查失败前需要等待的时间(以纳秒为单位)。

RootFS 字段详细信息

可用字段和数据类型 RootFS
选项 Type 描述
BaseLayer 字符串 显示映像中基本层的描述符。
Layers 字符串数组 显示每个映像层的描述符。
Type 字符串 显示文件系统的类型。