跳到主要内容

列出 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虚拟机的磁盘大小
.IdentityPathSSH 身份文件的路径
.LastUp虚拟机上次运行以来的时间
.Memory为虚拟机分配的内存量
.Name虚拟机的名称
.Port用于连接到虚拟机的 SSH 端口
.RemoteUsernamerootless Podman 使用的虚拟机用户名
.Running虚拟机是否正在运行
.State虚拟机的状态,例如 RunningStopped
.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 中正确显示。

另请参阅

podman(1), podman-machine(1)

历史

2021年3月,最初由 Ashley Cui 整理。