使用Linux在Windows上启动和运行podman的方法

825 阅读2分钟

WSL 2是Windows Subsystem for Linux的第二次迭代,它允许你在Windows上原生地运行Linux环境,而没有虚拟机(VM)的开销。它也能很好地与Windows集成,并为你提供访问你在Linux上习惯的大多数命令行工具、实用程序和应用程序。

本指南告诉你如何使用你选择的Linux发行版(可从微软商店购买),使WSL 2客机能够在Windows中运行podmanskopeo 、或buildah 命令。从Fedora Linux主机操作系统出发,我很好奇如何在Windows中启用和使用我最熟悉的工具。

前提是。WSL 2

要安装WSL 2,请进入WSL安装页面。

使用Powershell来确保WSL 2是默认启用的。

PS> wsl –set-default-version 2

关于WSL 1和WSL 2的主要区别,请看WSL文档

用于Linux的Windows子系统已经走过了漫长的道路。微软已经努力使主机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目录中,有一个提示,可以直接实现这一点。

$HOME directory

安装一个Linux发行版

要安装一个Linux发行版,在微软商店中找到你喜欢的。

screenshot of Fedora Remix purchase in the Microsoft store

在这篇文章中,我使用的是Fedora,但其他发行版也可以尝试。Podman在不同的发行版中运行良好,所以你可以使用你最熟悉的任何发行版。可能需要一些小的配置调整,但这些一般都是由发行版和podman文档记录的。我选择Fedora是因为它是一个不需要额外设置就能让最新的podman工作的发行版。

在第一次启动时,虚拟机和相关技术被安装。你会被提示为第一个用户(获得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的集成,podman甚至可以从PowerShell或命令提示符中访问和使用。

screenshot example of Windows PowerShell

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

Busybox测试

作为一个简单的测试,看看podman 的工作情况,你可以拉动并运行一个Busybox容器。BusyBox是一个开源(GPL)项目,提供了近400个常用命令的简单实现,包括ls, mv, ln, mkdir, more, ps, gzip, bzip2, tar ,和grep ,这使得它成为容器和像这样的简单测试的合适的最小环境。

首先,在默认图像库中搜索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
/ #

你可以使用该容器,运行一些命令,以验证一切工作是否符合预期,然后用退出命令离开它。

开始吧

我承认我很惊讶目前的Linux发行版、podman和Windows子系统在这里的合作是如此容易。很明显,在Windows的容器工具和与Linux的集成方面做了大量的工作。我希望这个指南能帮助其他人轻松地达到这个相同的启动点,并开始有成效。

有很多很好的候选者需要深入跟进,包括与卷一起工作,在客户和主机之间暴露网络服务,以及在这些容器中暴露Linux功能。有了这么多的工具,我有很大的信心,社区会在短时间内完成对这些工具的挖掘。