在 Windows 上使用 Linux 启动并运行 podman

允许 WSL 2 访客使用您选择的 Linux 发行版,从 Windows 内部运行 podman、skopeo 或 buildah 命令。
36 位读者喜欢这篇文章。
How Linux got to be Linux: Test driving 1993-2003 distros

Internet Archive Book Images 提供。由 Opensource.com 修改。CC BY-SA 4.0

WSL 2,Windows Linux 子系统的第二个版本,允许您在 Windows 上原生运行 Linux 环境,而无需虚拟机 (VM) 的开销。它与 Windows 集成得很好,并为您提供访问您在 Linux 上使用的绝大多数命令行工具、实用程序和应用程序的权限。

本指南向您展示如何允许 WSL 2 访客使用您选择的 Linux 发行版(可从 Microsoft Store 获得)从 Windows 内部运行 podmanskopeobuildah 命令。 从 Fedora Linux 主机操作系统开始,我很好奇如何从 Windows 内部启用和使用我最熟悉的工具。

先决条件:WSL 2

要安装 WSL 2,请访问 WSL 安装页面。

使用 Powershell 确保默认启用 WSL 2

PS> wsl –set-default-version 2

有关 WSL 1 和 WSL 2 之间主要差异的信息,请参阅 WSL 文档

Windows Linux 子系统已经取得了长足的进步。 Microsoft 努力使主机 Windows 操作系统和访客 Linux 操作系统之间的分离几乎不可见。 每个系统内核中的特殊驱动程序使在各种 shell 和命令窗口之间运行命令以及启用相互文件系统访问变得容易。

您可以使用以下命令和任何访客中的输出来确认您正在正确使用 WSL 2 内核

$ uname -a
Linux BLD 5.10.16.3-microsoft.standard-WSL2 #1 SMP Fri Apr 2 22:23:49 
UTC 2021 x86_64 x86_64 GNU/Linux

WSL 1 访客报告的内核版本为 4.14 或类似版本。

访客中的小调整可以使集成更加无缝,包括各种主目录文件(.aws、.sh、.config 等)的符号链接。 从 $HOME 目录中可以找到有关如何实现这一点的提示

安装 Linux 发行版

要安装 Linux 发行版,请在 Microsoft Store 中找到您喜欢的发行版。

在本文中,我使用的是 Fedora,但也有其他发行版可供尝试。 Podman 在各个发行版中都能很好地工作,因此您可以使用您最熟悉的任何发行版。 可能需要进行一些小的配置调整,但这些调整通常由发行版和 podman 文档记录。 我选择 Fedora 是因为它是不需要额外设置即可使最新 podman 工作的发行版。

首次启动时,将安装 VM 和相关技术。 系统将提示您为第一个用户(获得 sudo 访问权限)选择密码。

安装 podman

在安装 Linux 发行版并使用用户配置后,您可以像往常一样安装 podman

$ sudo dnf install podman

稍等片刻,podman 将被安装并准备就绪。 您可以检查一切是否按预期工作

$ podman info
host:
  arch: amd64
  buildahVersion: 1.22.3
  cgroupControllers: []
  cgroupManager: cgroupfs
  cgroupVersion: v1
[...]
version:
  APIVersion: 3.3.1
  OsArch: linux/amd64
  Version: 3.3.1

从那里,您可以构建镜像并像通常一样使用 podman。

感谢 WSL 集成,甚至可以从 PowerShell 或命令提示符访问和使用 podman

安装和使用 buildahskopeo 命令的过程完全相同。

Busybox 测试

作为查看 podman 工作的简单测试,您可以拉取并运行 Busybox 容器。 BusyBox 是一个开源 (GPL) 项目,提供近 400 个常用命令的简单实现,包括 ls、mv、ln、mkdir、more、ps、gzip、bzip2、targrep,这使其成为容器和简单测试的合适最小环境。

首先,在默认镜像存储库中搜索 Busybox 容器。 您可以在 Linux 终端或 Powershell 中执行此操作。

$ podman search busybox
INDEX       NAME                             DESCRIPTION                     
docker.io   docker.io/library/busybox        Busybox base image                  
docker.io   docker.io/radial/busyboxplus     Full-chain...
docker.io   docker.io/yauritux/busybox-curl  Busybox with CURL

运行您要尝试的一个

$ podman run -it docker.io/library/busybox
/ #

您可以使用容器,运行一些命令来验证一切是否按预期工作,然后使用exit命令退出。

开始使用

我承认我很惊讶当前的 Linux 发行版、podman 和 Windows 子系统在这里协同工作得如此容易。 显然,Windows 的容器工具和与 Linux 的集成已经做了很多出色的工作。 我希望本指南能帮助其他人轻松到达相同的起点并开始提高工作效率。

有很多很好的后续候选者,包括使用卷、在访客和主机之间公开网络服务以及在这些容器中公开 Linux 功能。 凭借如此多的可用工具,我非常有信心社区将很快完成对它们的挖掘!

接下来阅读
User profile image.
Steve 是一位软件工程师,在企业系统、云和应用程序开发方面拥有 20 年的经验。 他目前在 Red Hat 担任 OpenShift Container Platform 的工程总监。

评论已关闭。

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.