跳到主要内容

设置虚拟机设置

概述

podman machine set 命令用于更改虚拟机的设置。通过此命令,你可以调整虚拟机的 CPU 数量、内存大小、磁盘大小等参数。如果你没有指定虚拟机名称作为参数,那么设置将应用于默认的虚拟机,其默认名称为 podman-machine-default

这个命令仅适用于 rootless 模式下的 Podman。

选项

--rootful

这个选项决定了虚拟机是否优先使用 rootful(true)还是 rootless(false)容器执行。如果当前 podman 远程连接默认指向指定的机器名称(如果没有指定名称,则默认为 podman-machine-default),则此选项会更新它。

podman system connection default 不同,此选项使得 API 套接字(如果可用)转发到 VM 中的 rootful/rootless 套接字。

请注意,更改此选项意味着所有现有的容器、镜像、卷等将不再通过默认连接/套接字可见。这是因为 VM 中的 root 和 rootless 用户是完全隔离的,不共享任何存储。但是数据不会丢失,你可以随时更改此选项或使用其他连接来访问它。

--usb=bus=number,devnum=numbervendor=hexadecimal,product=hexadecimal""

将主机上的 USB 设备分配给 VM。 仅适用于 QEMU 机器。

设备需要在 VM 启动时存在。 设备需要具有适当的权限才能分配给 podman machine。

使用空字符串可以移除之前设置的所有 USB 设备。

请注意,使用总线和设备编号更简单,但这些值可能会在每个启动或设备被拔出时改变。使用供应商和产品编号可能导致多个具有相同供应商产品值的设备发生冲突,将分配第一个可用的设备。

--user-mode-networking

--user-mode-networking 选项用于指定虚拟机是否使用用户模式网络。在用户模式网络下,网络堆栈完全在用户空间内运行,而不是内核空间。这允许对网络流量进行更细粒度的控制,但可能会牺牲一些性能。此选项通常用于需要更高网络隔离性或特殊网络配置的场景。如果启用此选项,虚拟机将使用用户模式的网络栈,而不是依赖内核提供的网络功能。

启用用户模式网络可以有助于某些复杂的网络配置,例如桥接多个虚拟机网络或设置复杂的路由和防火墙规则。然而,它也可能增加复杂性和资源消耗,因为所有网络处理都在用户空间进行。

请注意,此选项的具体行为和可用性可能取决于 Podman 和底层虚拟化技术的版本和配置。建议查阅最新的 Podman 文档或相关手册页以获取更详细的信息和示例。

--cpus=number

设置虚拟机的 CPU 数量。此选项仅适用于 QEMU 虚拟机。

--disk-size=number

设置虚拟机磁盘的大小,单位为 GB。这个值只能增加,不能减小。此选项仅适用于 QEMU 虚拟机。

--help

显示帮助信息。

--memory, -m=number

设置虚拟机的内存大小,单位为 MB。此选项仅适用于 QEMU 虚拟机。

--usb

为虚拟机分配 USB 设备。使用格式为 bus=number,devnum=numbervendor=hexadecimal,product=hexadecimal 的参数来指定要分配的 USB 设备。使用空字符串可以移除之前设置的所有 USB 设备。此选项仅适用于 QEMU 虚拟机。

示例

将默认 Podman 虚拟机从 rootless 切换到 rootful

podman machine set --rootful

或者更明确地设置值为 true

podman machine set --rootful=true

将默认 Podman 虚拟机从 rootful 切换到 rootless

podman machine set --rootful=false

为指定的 Podman 虚拟机从 rootless 切换到 rootful

podman machine set --rootful myvm

相关命令

另请参阅

该文档最初由 Jason Greene 2022 年 2 月整理编写。随着 Podman 的不断发展和更新,相关命令和文档也可能会有所变化。建议用户在使用时查阅最新的官方文档或手册页以获取最准确的信息。

注意

在更改虚拟机设置时,请确保你了解这些更改对虚拟机性能、安全性和稳定性的影响。不恰当的配置可能导致虚拟机运行不稳定或无法正常工作。始终在生产环境之外测试新的配置更改,并在确认其稳定性和可靠性后再在生产环境中应用。