Podman 团队在 Podman 4.8 版本中引入了对 Hyper-V 的支持。在 5.1 版本中,我们更新了 Podman Windows 安装程序,允许在安装时配置 Hyper-V。这篇博文将解释这意味着什么以及如何使用它。
Podman 机器
与 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 子系统 for Linux v2 (WSL 2) 和 Hyper-V。两者都使用相同的底层 Windows 虚拟化技术,但前者使用 Hyper-V 功能的高度优化子集,被认为是轻量级虚拟化。如果您不知道应该使用哪一个,您可能想要使用 WSL 2。
如果使用 WSL 2…
您计划仅使用 VM 来运行 Podman 机器。WSL 2 比 Hyper-V 更轻量级,非常适合运行容器。它也是 Windows 10 及更高版本家庭版中唯一支持的选项。
如果使用 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 讨论区 中发起讨论,或加入 Podman 邮件列表并发送给我们一条消息!要加入邮件列表或了解其他沟通渠道,请访问 https://podman.org.cn/community。
- Podman 支持 Windows 11 和 Windows 10 构建 19041 或更高版本。↩︎
回复 William Crawley 先生取消回复