, ,

Podman Windows 安装程序中的新 Hyper-V 选项

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 initpodman machine start 命令创建并启动虚拟机。之后,Podman 可以像往常一样用于管理容器,这些容器在 Windows 上运行在 Linux 访客虚拟机中。

Podman 在 Windows 上的用户体验应该与 Linux 相同。但是,在某些情况下需要控制运行 Podman 的虚拟机。例如,用户可能更喜欢 Windows 上的特定虚拟化提供商,WSL 2 或 Hyper-V,我们将在下面讨论。

WSL 2 和 Hyper-V

在最新版本的 Windows1 上运行 Linux 虚拟机有两种原生选项:适用于 Linux 的 Windows 子系统 v2 (WSL 2) 和 Hyper-V。两者都使用相同的底层 Windows 虚拟化技术,但前者使用 Hyper-V 功能的高度优化子集,并被认为是轻量级虚拟化。如果您不知道应该使用哪一个,您可能需要 WSL 2。

在以下情况下使用 WSL 2:

您计划仅使用虚拟机来运行 Podman machine。WSL 2 比 Hyper-V 更轻巧,非常适合运行容器。它也是 Windows 10 及更高版本家庭版上唯一受支持的选项。

在以下情况下使用 Hyper-V:

您已经预装了 Hyper-V,并且您计划运行使用除 Microsoft WSL2 Linux 内核以外的内核的虚拟机,或者根据您公司的政策禁用了 WSL。

如何运行 Podman 安装程序以使用 Hyper-V

适用于 Windows 的 Podman v5.1 安装程序引入了三个新的命令行变量

  • MachineProvider:如果设置为 hyperv,安装程序将 Podman 配置为使用 Hyper-V。如果设置为 wsl 或未设置,则将其配置为使用 WSL 2。
  • HyperVCheckbox:如果设置为 1,安装程序将启用 Hyper-V 作为 Podman 安装的一部分。如果设置为 0 或未设置,则不会。如果用户已经安装了 Hyper-V,安装程序将忽略此变量。
  • SkipConfigFileCreation:如果设置为 1,则安装不会创建配置文件。当存在以前版本的 Podman 时,此变量有助于避免覆盖现有配置文件。

除了这些新变量之外,安装程序还继续支持以下变量

  • InstallFolder:Podman 安装目录的路径。默认值为 C:\Program Files\RedHat\Podman
  • WSLCheckbox:如果设置为 1,安装程序将启用 WSL 2 作为 Podman 安装的一部分。如果设置为 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 machine。为此,请以管理员身份打开 Windows 终端并运行以下命令

> podman machine init
> podman machine start

操作系统映像已下载,虚拟机已创建并启动。完成后,Podman 远程客户端会自动配置为连接到在 Hyper-V 虚拟机中运行的 Podman 服务器。然后可以从 Windows 终端(无需管理员终端)管理容器、Pod 和镜像。

接下来是什么

引入命令行参数来配置虚拟化提供程序是向 Hyper-V 提供与 WSL 2 相同级别的支持迈出的一步。但我们尚未完成这项工作。特别是,我们正在努力改进以下方面:

  • 在安装程序欢迎对话框中添加一个按钮以选择虚拟化提供程序(问题
  • 不需要管理员终端来初始化和启动基于 Hyper-V 的机器(问题12
  • 当用户已经安装了 Hyper-V 而没有安装 WSL 2 时,使用 Hyper-V 作为默认提供程序而不是 WSL 2
  • 如果用户已经安装了 WSL 2 或 Hyper-V,则不要求安装它们

如果您对其他改进有想法,我们很乐意听取您的意见!只需在 Podman 的 GitHub Discussions 中发起讨论,或加入 Podman 邮件列表并给我们留言!要加入邮件列表或发现其他通信渠道,请访问 https://podman.org.cn/community


  1. Podman 支持 Windows 11 和 Windows 10 build 19041 或更高版本。↩︎

留下评论

订阅

输入您的电子邮件地址以接收来自本网站的电子邮件更新。

返回

您的消息已发送

警告
警告
警告。

分类


搜索