【docker】基于docker的模板语法,访问对象的各种属性
2024-09-03 本文已影响0人
Bogon
Docker的模板语法使用示例
docker ps --format '{{.ID}}'
docker inspect xxxx --format "{{ .HostsPath }}"
在Docker命令中使用--format '{{.xxx}}'
的语法是Docker的模板引擎的一部分。
这个功能允许你从Docker命令的输出中提取并格式化特定的信息。
下面是一些详细信息:
docker ps --format '{{.ID}}'
-
docker ps
:列出当前运行的容器。 -
--format '{{.ID}}'
:指定输出格式。在这个例子中,{{.ID}}
是一个模板,表示只提取每个容器的ID。模板语法使用双大括号{{}}
包裹字段名称。
docker inspect xxxx --format "{{ .HostsPath }}"
-
docker inspect xxxx
:获取容器(或其他对象)的详细信息,xxxx
是容器的ID或名称。 -
--format "{{ .HostsPath }}"
:指定输出格式。在这个例子中,{{ .HostsPath }}
是一个模板,表示提取容器的HostsPath
属性。HostsPath
表示容器的/etc/hosts
文件在宿主机上的路径。
模板语法
Docker的模板语法允许你访问对象的各种属性。常见的属性包括:
-
.ID
:容器的ID。 -
.Names
:容器的名称。 -
.Ports
:容器的端口映射。 -
.Networks
:容器的网络信息。
使用模板的好处
- 定制输出:你可以只获取你感兴趣的信息,而不是整条记录。
- 脚本友好:这种格式化方式非常适合在脚本中使用,可以简化数据处理和提取。
例如,下面的命令会输出所有运行中的容器的ID:
docker ps --format '{{.ID}}'
然后,你可以使用这些ID进行进一步的操作,比如提取每个容器的/etc/hosts
路径:
for ctr in $(docker ps --format '{{.ID}}'); do
ResolvConfPath=$(docker inspect $ctr --format "{{ .HostsPath }}")
echo "Container $ctr has /etc/hosts at $ResolvConfPath"
done
这段代码逐个容器地输出其/etc/hosts
文件的路径。
Docker的模板语法允许你访问对象的各种属性,常见的属性都有哪些?
Docker的模板语法使用Go语言的模板引擎,允许你访问容器、镜像、网络等对象的各种属性。以下是一些常见的属性及其说明:
容器属性 (docker ps
和 docker inspect
)
-
ID:
{{.ID}}
— 容器的ID。 -
Names:
{{.Names}}
— 容器的名称。 -
Image:
{{.Image}}
— 容器使用的镜像名称。 -
ImageID:
{{.ImageID}}
— 容器使用的镜像的ID。 -
Command:
{{.Command}}
— 启动容器时执行的命令。 -
Created:
{{.Created}}
— 容器创建的时间。 -
Ports:
{{.Ports}}
— 容器的端口映射信息。 -
Status:
{{.Status}}
— 容器的状态(如运行中、停止等)。 -
State:
{{.State}}
— 容器的详细状态信息(运行、停止等)。 -
NetworkSettings:
{{.NetworkSettings}}
— 网络配置,包括IP地址、端口映射等。 -
Mounts:
{{.Mounts}}
— 容器的挂载点信息(卷、bind mounts等)。 -
HostConfig:
{{.HostConfig}}
— 容器主机配置,包括CPU、内存限制等。 -
Config:
{{.Config}}
— 容器的配置(环境变量、标签等)。 -
ResolvConfPath:
{{.ResolvConfPath}}
— 容器的/etc/resolv.conf
文件在宿主机上的路径。 -
HostsPath:
{{.HostsPath}}
— 容器的/etc/hosts
文件在宿主机上的路径。
镜像属性 (docker images
和 docker inspect
)
-
ID:
{{.ID}}
— 镜像的ID。 -
RepoTags:
{{.RepoTags}}
— 镜像的标签。 -
RepoDigests:
{{.RepoDigests}}
— 镜像的摘要。 -
Created:
{{.Created}}
— 镜像创建的时间。 -
Size:
{{.Size}}
— 镜像的大小。 -
VirtualSize:
{{.VirtualSize}}
— 镜像的虚拟大小。 -
ParentID:
{{.ParentID}}
— 镜像的父ID(如果有)。
网络属性 (docker network inspect
)
-
ID:
{{.ID}}
— 网络的ID。 -
Name:
{{.Name}}
— 网络的名称。 -
Driver:
{{.Driver}}
— 网络驱动类型(如bridge、overlay等)。 -
IPAM:
{{.IPAM}}
— IP地址管理配置信息。 -
Containers:
{{.Containers}}
— 连接到网络的容器信息。 -
Services:
{{.Services}}
— 服务(如果使用Swarm模式)。
卷属性 (docker volume inspect
)
-
Name:
{{.Name}}
— 卷的名称。 -
Driver:
{{.Driver}}
— 卷的驱动类型。 -
Mountpoint:
{{.Mountpoint}}
— 卷在宿主机上的挂载点。 -
Labels:
{{.Labels}}
— 卷的标签。 -
Options:
{{.Options}}
— 卷的选项。
这些属性可以帮助你定制和过滤Docker命令的输出,满足各种自动化和脚本化需求。
你可以根据需要在模板中组合这些字段来获取所需的信息。