列出 Podman 管理的虚拟机
podman machine list 命令概述
podman machine list
命令会显示所有已配置 Podman 虚拟机的详细信息。这些详细信息可能包括虚拟机的名称、类型、创建时间、状态、CPU 数量、内存大小、磁盘大小等。通过查看这些信息,开发者可以轻松地了解和管理他们的 Podman 虚拟机环境。
这是列表项的第一行
这是列表项的第二行,它会自动被视为新段落。
注意
在 MacOS 和 Windows 上使用 Podman 需要一个虚拟机,因为容器是 Linux 容器,它们在其他操作系统上无法运行,因为容器的核心功能依赖于 Linux 内核。Podman machine 用于管理 MacOS 和 Windows 上的虚拟机,但也可以选择在 Linux 上使用。
仅适用于无 root 权限的情况。
注意:Podman-machine 的配置文件位于
$XDG_CONFIG_HOME/containers/podman/machine/
目录下。在机器运行时更改$XDG_CONFIG_HOME
环境变量可能导致意外的行为。(参见 podman(1))
使用 podman machine list 命令
在终端中执行以下命令来列出所有 Podman 虚拟机:
podman machine list
默认情况下,该命令会以表格形式输出虚拟机的详细信息。
格式化输出为 Markdown
要将 podman machine list
的输出格式化为 Markdown 文档,你可以使用 --format
选项来指定输出格式。然而,Podman 本身可能不直接支持 Markdown 格式的输出。不过,你可以通过一些文本处理工具(如 awk
, sed
, jq
等)来转换输出为 Markdown。
以下是一个简单的例子,说明如何使用 awk
将默认的表格输出转换为 Markdown 格式的表格:
podman machine list --format "{{.Name}}\t{{.VMType}}\t{{.Created}}\t{{.LastUp}}\t{{.CPUs}}\t{{.Memory}}\t{{.DiskSize}}\t{{.Running}}" | awk -F$'\t' 'BEGIN {print "| 名称 | 虚拟机类型 | 创建时间 | 最后启动时间 | CPU 数量 | 内存大小 | 磁盘大小 | 运行状态 |"} {print "| " $1 " | " $2 " | " $3 " | " $4 " | " $5 " | " $6 " | " $7 " | " ($8 == "true" ? "运行中" : "已停止") " |"}'
这条命令首先使用 podman machine list
的 --format
选项来定制输出列,然后使用 awk
来将制表符分隔的列转换为 Markdown 格式的表格。注意,这里假设 "Running" 列的值是布尔类型的,并根据其值输出相应的中文状态。
自定义 Markdown 表格
如果你想要一个更自定义的 Markdown 表格,你可能需要编写更复杂的脚本来处理输出。例如,你可能想要添加标题、合并列、调整列宽等。这通常涉及到对文本处理有深入的了解,以及能够编写相应的脚本或程序。
选项
--format=格式
当使用 --format
选项时,你可以使用以下占位符来自定义输出:
更改默认的输出格式。可以是支持的类型,如 'json',或者是一个 Go 模板。
Go 模板的有效占位符如下:
占位符 | 描述 |
---|---|
.CPUs | 虚拟机的 CPU 数量 |
.Created | 虚拟机自创建以来的时间 |
.Default | 是否为默认虚拟机 |
.DiskSize | 虚拟机的磁盘大小 |
.IdentityPath | SSH 身份文件的路径 |
.LastUp | 虚拟机上次运行以来的时间 |
.Memory | 为虚拟机分配的内存量 |
.Name | 虚拟机的名称 |
.Port | 用于连接到虚拟机的 SSH 端口 |
.RemoteUsername | rootless Podman 使用的虚拟机用户名 |
.Running | 虚拟机是否正在运行 |
.State | 虚拟机的状态,例如 Running 、Stopped 等 |
.Stream | 流名称(通常用于日志输出) |
.URL | 访问虚拟机的 URL |
.Active | 指示虚拟机是否处于活动状态 |
.SSHAddress | 用于 SSH 连接到虚拟机的地址 |
.SSHUser | 用于 SSH 连接到虚拟机的用户名 |
.SSHPort | 用于 SSH 连接到虚拟机的端口号 |
.UserModeNetworking | 虚拟机是否使用用户模式网络 |
.VMType | 虚拟机的类型 |
使用这些占位符,您可以自定义输出以满足特定的需求。例如,如果您只想查看虚拟机的名称和状态,可以使用以下格式:
podman machine list --format "{{.Name}}\t{{.State}}"
这将以制表符分隔的格式输出虚拟机的名称和状态。
--quiet, -q
仅显示虚拟机的名称,不显示其他详细信息。
--all, -a
显示所有虚拟机,包括已停止的虚拟机。默认情况下,只显示正在运行的虚拟机。
--help
显示帮助信息并退出。
示例
列出所有虚拟机
要列出所有 Podman 管理的虚拟机,包括已停止的虚拟机,可以使用以下命令:
podman machine list --all
自定义输出格式
使用 --format
选项自定义输出格式。例如,要以 JSON 格式输出虚拟机的详细信息,可以使用:
podman machine list --format json
或者,如果您只想看到虚拟机的名称和状态,并希望它们以制表符分隔,可以这样做:
podman machine list --format "{{.Name}}\t{{.State}}"
--help
显示使用说明。
--noheading
不打印表格标题。
--quiet, -q
仅打印机器的名称。这也表示不打印表格标题。
示例
列出所有 Podman 机器。
podman machine list
名称 虚拟机类型 创建时间 最后启动时间 CPU数量 内存大小 磁盘大小
podman-machine-default qemu 2周前 2周前 1 2.147GB 10.74GB
使用指定的表格格式列出所有 Podman 机器。
podman machine ls --format "table {{.Name}}\t{{.VMType}}\t{{.Created}}\t{{.LastUp}}"
名称 虚拟机类型 创建时间 最后启动时间
podman-machine-default qemu 2周前 2周前
以 json 格式列出所有 Podman 机器。
podman machine ls --format json
[
{
"名称": "podman-machine-default",
"默认": false,
"创建时间": "2021-12-27T10:36:14.373347492-05:00",
"运行中": false,
"最后启动时间": "2021-12-27T11:22:50.17333371-05:00",
"流": "default",
"虚拟机类型": "qemu",
"CPU数量": 1,
"内存大小": "2147483648",
"磁盘大小": "10737418240"
}
]
注意事项
- 请确保你的 Podman 版本支持
--format
选项以及你需要的模板变量。 - 根据你的需要调整
awk
脚本或其他文本处理工具,以生成符合你要求的 Markdown 格式。 - 如果 Podman 的输出包含特殊字符或格式,你可能需要在转换过程中进行额外的处理来确保它们在 Markdown 中正确显示。
另请参阅
历史
2021年3月,最初由 Ashley Cui 整理。