Podman 团队在 Podman 4.8 版本中引入了对 Hyper-V 的支持。在 5.1 版本中,我们更新了 Podman Windows 安装程序,允许在安装时配置 Hyper-V。这篇博文将解释这意味着什么以及如何使用它。
Podman Machine
与 macOS 类似,Windows 上的 Podman 需要 podman-remote 客户端和一个 Linux 虚拟机 (VM)才能正常工作。

Windows 安装程序 podman-setup.exe
在 Windows 主机上安装了远程客户端 podman.exe
。大多数情况下,用户不需要了解以下详细信息,但以防万一:远程客户端使用命令 podman machine init
和 podman machine start
创建并启动虚拟机。之后,Podman 可以像往常一样用于管理容器,这些容器在 Windows 上运行在 Linux 客机虚拟机中。

Windows 上 Podman 的用户体验应该与 Linux 相同。但是,在某些情况下,需要控制运行 Podman 的虚拟机。例如,用户可能更喜欢 Windows 上的特定虚拟化提供程序,WSL 2 或 Hyper-V,我们将在下面讨论。
WSL 2 和 Hyper-V
在最新版本的 Windows1 上,有两种方法可以本地运行 Linux 虚拟机:Windows Subsystem for Linux v2 (WSL 2) 和 Hyper-V。两者都使用相同的底层 Windows 虚拟化技术,但前者使用 Hyper-V 功能的高度优化子集,被认为是轻量级虚拟化。如果您不知道应该使用哪一个,您可能想要使用 WSL 2。
如果您想要… 使用 WSL 2
您计划仅使用 VM 运行 Podman 机器。WSL 2 比 Hyper-V 更轻,非常适合运行容器。它也是 Windows 10 及更高版本 Home 版本中唯一支持的选项。
如果您想要… 使用 Hyper-V
您已经预安装了 Hyper-V,并且您计划使用除 Microsoft WSL2 Linux 内核 之外的内核运行 VM,或者根据您公司的策略,WSL 已被禁用。
如何运行 Podman 安装程序以使用 Hyper-V
适用于 Windows 的 Podman v5.1 安装程序引入了三个新的命令行变量
MachineProvider
:如果设置为hyperv
,安装程序将配置 Podman 以使用 Hyper-V。如果设置为wsl
或未设置,它将配置 Podman 以使用 WSL 2。HyperVCheckbox
:如果设置为1
,安装程序将在 Podman 安装过程中启用 Hyper-V。如果设置为0
或未设置,则不会启用。如果用户已安装 Hyper-V,安装程序将忽略此变量。SkipConfigFileCreation
:如果设置为1
,安装将不会创建配置文件。此变量有助于在存在先前版本的 Podman 时避免覆盖现有配置文件。
除了这些新变量之外,安装程序继续支持以下变量
InstallFolder
:Podman 安装目录的路径。默认值为C:\Program Files\RedHat\Podman
。WSLCheckbox
:如果设置为1
,安装程序将在 Podman 安装过程中启用 WSL 2。如果设置为0
或未设置,则不会启用。如果用户已安装 WSL 2,安装程序将忽略此变量。
例如,要安装 Podman 并将其配置为使用 Hyper-V,请从 Podman GitHub 的“Releases”页面 下载安装包。在撰写本文时,当前版本为 Podman v5.1.1,此发布页面的文件名为此:podman-5.1.1-setup.exe
:https://github.com/containers/podman/releases/tag/v5.1.1。下载完成后,从 Windows PowerShell 终端运行以下命令
> .\podman-<version>-setup.exe /install MachineProvider=hyperv HyperVCheckbox=1 WSLCheckbox=0
安装欢迎对话框将打开。单击“安装”按钮,等待安装完成。
安装需要重启才能启用 Hyper-V。
如果 Podman 实例已在本地安装,安装程序将保留现有的机器提供程序配置。
要验证安装是否已将 Podman 配置为使用 Hyper-v,请查看系统范围的配置文件 99-podman-machine-provider.conf
> Get-Content “$ENV:PROGRAMDATA\containers\containers.conf.d\99-podman-machine-provider.conf”
[machine]
provider="hyperv"
下一步是启动 Podman 机器。为此,请以管理员身份打开 Windows 终端并运行以下命令
> podman machine init
> podman machine start
操作系统镜像将被下载,VM 将被创建并启动。完成时,Podman 远程客户端将自动配置为连接到在 Hyper-V VM 中运行的 Podman 服务器。然后,它可以用于从 Windows 终端管理容器、Pod 和镜像(不需要管理员终端)。
下一步是什么
引入命令行参数来配置虚拟化提供程序是为 Hyper-V 提供与 WSL 2 相同级别的支持的一步。但我们尚未完成工作。特别是,我们正在研究以下改进
如果您有关于其他改进的想法,我们很乐意听取!只需在 Podman 的 GitHub Discussions 中开始讨论,或者加入 Podman 邮件列表并发送给我们信息!要加入邮件列表或了解其他通信渠道,请查看 https://podman.org.cn/community。
- Podman 支持 Windows 11 和 Windows 10 构建 19041 或更高版本。↩︎
发表回复