使用 RHEL 作为 WSL podman 机器
红帽提供了一个名为 Image Builder 的工具,允许开发人员以多种格式构建自己的 RHEL 自定义镜像。最近,Image Builder 将 WSL 添加为一个目标,使您可以在 Windows 上将 RHEL 作为 WSL 发行版运行。
这篇文章详细介绍了构建和运行 RHEL WSL 镜像所需的步骤和操作。
本文的目的是描述 RHEL WSL 发行版所需的选项,以便它可以作为 Podman machine 使用。
要将 RHEL WSL 镜像用作 Podman machine,请确保安装了以下软件包:
- podman
- podman-docker
- procps-ng
- openssh-server
- net-tools
- iproute
- dhcp-client
- sudo
- systemd-networkd
幸运的是,除了最后一个软件包外,所有软件包都可从预配置的 RHEL 9 软件仓库中获得。最后一个软件包 (systemd-networkd) 可从 EPEL 9 软件仓库中获得,需要在构建镜像时进行配置。
构建镜像
导航至 image builder
在右上角菜单中,启用 Preview (预览) 模式。
点击 Add blueprint (添加蓝图) 以打开 Create image (创建镜像) 对话框向导。
在 Image output (镜像输出) 页面,选择以下内容:
- 从 Release (发行版) 列表中,选择 Red Hat Enterprise Linux (RHEL) 9。
- 在 Select target environments (选择目标环境) 选项中,选择 WSL - Windows Subsystem for Linux (
.tar.gz
)。 - 点击 Next (下一步)。
尽管 Release (发行版) 中提供了 RHEL 10 (Beta) 选项,但请注意它不兼容。在撰写本文时,WSL 内核不支持 nftables。
在 Register (注册) 页面,选择 Automatically register and enable advanced capabilities. (自动注册并启用高级功能)。
- 从下拉菜单中,选择一个用于镜像的激活密钥。请参阅创建激活密钥。
- 点击 Next (下一步)。
在 OpenSCAP 页面,由于 WSL 镜像不支持该功能,请点击 Next (下一步)。
在 File system configuration (文件系统配置) 页面,选择 Recommended: Use automatic partitioning (推荐:使用自动分区)。
- 点击 Next (下一步)。
在 Content (内容) 页面,完成以下步骤以向您的镜像添加额外的软件包:
-
在 Repository snapshot (软件仓库快照) 步骤中
- 选择 Use latest content (使用最新内容)。
- 点击 Next (下一步)。
-
在 Custom repositories (自定义软件仓库) 步骤中
点击 Create and manage repositories here (在此创建和管理软件仓库) 链接。这将打开一个新标签页。
点击 Add repositories now (立即添加软件仓库)。
点击 Add repositories (添加软件仓库)。
在 Add custom repositories (添加自定义软件仓库) 页面,选择以下内容:
- 在 Name (名称) 列表中,输入 EPEL 9。
- 在 URL 字段中,输入
https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/
- 在 GPG key (GPG 密钥) 字段中,输入
https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-9
- 点击 Save (保存)。
关闭该标签页并切换回前一个。
- 在筛选输入字段中,键入 EPEL。
- 选择 EPEL 9 软件仓库。
点击 Next (下一步)。
- 在 Additional packages (附加软件包) 步骤中
- 在 Available packages (可用软件包) 搜索字段中,输入 podman 并点击 → 按钮。
- 选择 podman 和 podman-docker 软件包。
- 在 Available packages (可用软件包) 搜索字段中,输入 procps-ng 并点击 → 按钮。
- 选择 procps-ng 软件包。
- 在 Available packages (可用软件包) 搜索字段中,输入 openssh-server 并点击 → 按钮。
- 选择 openssh-server 软件包。
- 在 Available packages (可用软件包) 搜索字段中,输入 net-tools 并点击 → 按钮。
- 选择 net-tools 软件包。
- 在 Available packages (可用软件包) 搜索字段中,输入 iproute 并点击 → 按钮。
- 选择 iproute 软件包。
- 在 Available packages (可用软件包) 搜索字段中,输入 dhcp-client 并点击 → 按钮。
- 选择 dhcp-client 软件包。
- 在 Available packages (可用软件包) 搜索字段中,输入 sudo 并点击 → 按钮。
- 选择 sudo 软件包,然后点击 > 按钮,将软件包搜索结果中显示的已选软件包添加到 Chosen packages (已选软件包) 双列表框中。
- 在 Available packages (可用软件包) 搜索字段中,输入 systemd 并点击 → 按钮。
- 选择 systemd-networkd 软件包。
- 点击 Next (下一步)。
在 First boot script configuration (首次启动脚本配置) 页面
- 点击 Next (下一步)。
在 Details (详情) 页面
- 在 Blueprint name (蓝图名称) 中,输入 rhel-wsl。
- 点击 Next (下一步)。
在 Review (审查) 页面
- 点击 Create blueprint and build image (创建蓝图并构建镜像)。
镜像正在构建中。构建完成后,下载链接将可用。点击 Download (.tar.gz) (下载 .tar.gz) 链接并将下载的文件保存到您的本地文件夹之一。
创建 RHEL WSL podman machine
启动 Podman Desktop 并转到 Settings -> Resources (设置 -> 资源) 页面。
在 Podman provider 上,点击 Create new ... (新建...)。
在 Create Podman machine (创建 Podman machine) 页面,点击 Image Path (镜像路径) 字段的 Browse (浏览) 按钮,并选择从 Image Builder 下载的文件。
点击 Create (创建) 按钮:machine 将被创建并启动。稍后,应会报告操作状态。
来体验一下 RHEL WSL podman machine
转到 Images (镜像) 页面并拉取 httpd 镜像。
点击 Done (完成)。
通过点击 Run image (运行镜像) 图标来启动镜像。
一旦容器启动,就可以在 localhost:9000 访问 Apache 服务器。