Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍Docker CLI 中 docker secret ls 常用命令。

1、docker secret ls 简介

docker secret ls 命令用于列出当前 Docker 引擎上的所有密钥。它会按名称升序列出每个密钥的 ID 和创建时间。

在管理节点上运行此命令,以列出集群中的密钥。

此命令与Swarm orchestrator一起工作。

注意:此命令一个集群管理命令,必须在集群管理器节点上执行。要了解经理和工人,请参阅文档中的Swarm mode部分。

参考文档https://docs.docker.com/engine/reference/commandline/secret_ls/

2、docker secret ls 语法

docker secret ls [OPTIONS]

3、docker secret ls 命令

docker secret ls

ID                          NAME                        CREATED             UPDATED
6697bflskwj1998km1gnnjr38   q5s5570vtvnimefos1fyeo2u2   6 weeks ago         6 weeks ago
9u9hk4br2ej0wgngkga6rp4hq   my_secret                   5 weeks ago         5 weeks ago
mem02h8n73mybpgqjf0kfi1n0   test_secret                 3 seconds ago       3 seconds ago

1)过滤(--filter)

过滤标志 (-f 或 --filter) 的格式是键值对。如果有多个过滤器,则传递多个标志 (例如,--filter "foo=bar" --filter "bif=baz")

当前支持的过滤器如下:

  • id(密钥 ID)
  • label(label= 或 label==)
  • name(密钥名称)

2)id

id 过滤器匹配所有或密钥 ID 的前缀。

例如,id过滤器匹配秘密id的全部或前缀。

docker secret ls -f "id=6697bflskwj1998km1gnnjr38"

ID                          NAME                        CREATED             UPDATED
6697bflskwj1998km1gnnjr38   q5s5570vtvnimefos1fyeo2u2   6 weeks ago         6 weeks ago

3)label

label 过滤器根据标签的存在和值来匹配密钥。

以下过滤器将匹配所有具有 project 标签的密钥,而不考虑其值。

docker secret ls --filter label=project

ID                          NAME                        CREATED             UPDATED
mem02h8n73mybpgqjf0kfi1n0   test_secret                 About an hour ago   About an hour ago

以下过滤器仅匹配具有 project 标签且值为 project-a 的服务。

docker service ls --filter label=project=test

ID                          NAME                        CREATED             UPDATED
mem02h8n73mybpgqjf0kfi1n0   test_secret                 About an hour ago   About an hour ago

4)name

name 过滤器匹配所有或密钥名称的前缀。

以下过滤器将匹配名称包含 test 前缀的密钥。

docker secret ls --filter name=test_secret

ID                          NAME                        CREATED             UPDATED
mem02h8n73mybpgqjf0kfi1n0   test_secret                 About an hour ago   About an hour ago

5)格式化输出 (--format)

格式化选项 (--format) 使用 Go 模板漂亮地打印密钥输出。

Go 模板的有效占位符如下:

占位符

描述

.ID

密钥 ID

.Name

密钥 name

.CreatedAt

密钥创建时间

.UpdatedAt

密钥更新时间

.Labels

所有分配给密钥的标签

.Label

此密钥特定标签的值。例如 {{.Label "secret.ssh.key"}}

使用 --format 选项时,密钥列表命令将根据模板声明精确输出数据或在使用 table 指令时也包括列标题。

以下示例使用没有标题的模板,并为所有密钥输出以冒号 (:) 分隔的 ID 和 Name 条目。

docker secret ls --format "{{.ID}}: {{.Name}}"

77af4d6b9913: secret-1
b6fa739cedf5: secret-2
78a85c484f71: secret-3

要以表格格式显示所有密钥的名称和创建日期,请使用以下命令:

docker secret ls --format "table {{.ID}}\t{{.Name}}\t{{.CreatedAt}}"

ID                  NAME                      CREATED
77af4d6b9913        secret-1                  5 minutes ago
b6fa739cedf5        secret-2                  3 hours ago
78a85c484f71        secret-3                  10 days ago

要以 JSON 格式列出所有密钥,请使用 json 指令:

docker secret ls --format json
{"CreatedAt":"28 seconds ago","Driver":"","ID":"4y7hvwrt1u8e9uxh5ygqj7mzc","Labels":"","Name":"mysecret","UpdatedAt":"28 seconds ago"}

4、命令选项

选项

默认值

描述

--format , -f

使用自定义模板格式化输出:

‘json’:以 JSON 格式打印 ‘TEMPLATE’:使用给定的 Go 模板打印输出。

请参阅 https://docs.docker.com/go/formatting/

了解有关使用模板格式化输出的更多信息

--pretty

以人性化的格式打印信息

5、子命令

命令

描述

docker secret create

创建一个密钥,从文件或标准输入中读取内容

docker secret inspect

显示一个或多个密钥的详细信息

docker secret ls

列出所有密钥

docker secret rm

删除一个或多个密钥

推荐文档

相关文档

大家感兴趣的内容

随机列表