当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 Windows 10 上运行 Podman |带有 WSL2 的 Windows Server 2019

作者:精品下载站 日期:2024-12-14 12:27:38 浏览:14 分类:玩电脑

在 Windows 10 上运行 Podman |带有 WSL2 的 Windows Server 2019


您可能已经知道,Windows Subsystem for Linux (WSL) 允许开发人员直接在 Windows 上运行 GNU/Linux 环境(包括大多数命令行工具、实用程序和应用程序),无需修改,无需虚拟机的开销。

WSL 2 是 Windows Subsystem for Linux 架构的新版本,它支持 Windows Subsystem for Linux 在 Windows 上运行 ELF64 Linux 二进制文件。其主要目标是提高文件系统性能,以及添加完整的系统调用兼容性。

在我们开始运行并让 Podman 在 Windows 10 上运行之前,我们必须安装 WSL2,获取我们最喜欢的 Linux 发行版,然后继续在其中安装 Podman。因此,本指南将分为两个部分。第一部分处理 WSL2 的安装,下一部分处理 podman 的安装和测试。评论

第 1 部分:安装适用于 Linux 的 Windows 子系统

请按照以下步骤安装 WSL2 并启动并运行最喜欢的 Linux 发行版。我将使用 Ubuntu 20.04。

第 1 步:启用适用于 Linux 的 Windows 子系统

在 Windows 上安装任何 Linux 发行版之前,必须启用“Windows Subsystem for Linux”可选功能。

以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

[玩转系统] 在 Windows 10 上运行 Podman |带有 WSL2 的 Windows Server 2019

这将使 WSL 1 在 Windows 中准备就绪。要获得 WSL 2,我们必须按下一步所示对其进行更新。

步骤 2:更新到 WSL 2

要更新到 WSL 2,Windows 必须满足以下条件:

  • 运行 Windows 10,已更新至版本 2004、内部版本 19041 或更高版本。
    通过选择 Windows 徽标键 + R 检查您的 Windows 版本,键入 winver,然后选择“确定”。
  • 启用“虚拟机平台”可选组件
    在安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。

[玩转系统] 在 Windows 10 上运行 Podman |带有 WSL2 的 Windows Server 2019

请注意,如果不满足上述要求,以后将无法进行任何操作。将您的 Windows 10 更新到 2004、Build 19041 或更高版本。

以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

[玩转系统] 在 Windows 10 上运行 Podman |带有 WSL2 的 Windows Server 2019

重新启动计算机以完成 WSL 安装并更新到 WSL 2。

第 3 步:安装 Linux 发行版

计算机重新启动后恢复正常后,打开“Microsoft Store”应用程序并搜索您最喜欢的 Linux Distro。我要搜索并安装 Ubuntu 20.04

[玩转系统] 在 Windows 10 上运行 Podman |带有 WSL2 的 Windows Server 2019

搜索 Ubuntu

[玩转系统] 在 Windows 10 上运行 Podman |带有 WSL2 的 Windows Server 2019

安装 Ubuntu 20.04 LTS

[玩转系统] 在 Windows 10 上运行 Podman |带有 WSL2 的 Windows Server 2019

下载时请耐心等待。

[玩转系统] 在 Windows 10 上运行 Podman |带有 WSL2 的 Windows Server 2019

您也可以在安装后启动以确认其运行状况良好。

[玩转系统] 在 Windows 10 上运行 Podman |带有 WSL2 的 Windows Server 2019

我们开始吧!

[玩转系统] 在 Windows 10 上运行 Podman |带有 WSL2 的 Windows Server 2019

系统将要求您输入用户名和密码。请这样做!

[玩转系统] 在 Windows 10 上运行 Podman |带有 WSL2 的 Windows Server 2019

之后,一切都应该非常顺利,如下所示。我们已登录并准备好进行下一步。

[玩转系统] 在 Windows 10 上运行 Podman |带有 WSL2 的 Windows Server 2019

步骤 4:将 WSL 2 设置为默认版本(可选)

在设置 WSL 2 版本时,您有两个选择。

选项 1:您可以通过在 PowerShell 上运行以下命令,将特定的 Linux 发行版设置为由任一版本的 WSL 支持

wsl --set-version  <distribution name> <versionNumber>

确保将其替换为您的发行版的实际名称以及数字“1”或“2”。您可以随时更改回 WSL 1,方法是运行与上面相同的命令,但将“2”替换为“1”。

您可以通过键入以下命令来检查所有发行版:

wsl --list --all

[玩转系统] 在 Windows 10 上运行 Podman |带有 WSL2 的 Windows Server 2019

选项 2:您可以通过在 PowerShell 上运行以下命令将 WSL 2 设置为默认全局架构。

wsl --set-default-version 2

我将选择第一个选项,但您可以自由选择其中之一。

wsl --set-version  Ubuntu-20.04 2

如果您收到类似以下消息:
WSL 2 需要更新其内核组件。有关信息,请访问 https://aka.ms/wsl2kernel

单击此链接下载 Linux 内核更新包,然后进行安装。
您可以在接下来提供的 URL 上找到有关此内容的更多信息。 https://docs.microsoft.com/en-us/windows/wsl/wsl2-kernel

安装软件包后,再次发出命令。需要几秒钟才能完成。

wsl --set-version  Ubuntu-20.04 2

[玩转系统] 在 Windows 10 上运行 Podman |带有 WSL2 的 Windows Server 2019

完成转换后,您可以通过运行以下命令来检查您的 Linux 发行版所具有的 WSL 版本

wsl -l -v

  NAME            STATE           VERSION
* Ubuntu-18.04    Stopped         1
  Ubuntu-20.04    Stopped         2

[玩转系统] 在 Windows 10 上运行 Podman |带有 WSL2 的 Windows Server 2019

如您所见,我们的 Ubuntu 20.04 采用 WSL 版本 2,而另一个采用 WSL 版本 1。您可以根据需要从一个 WSL 版本转换为另一个 WSL 版本。

第 2 部分:安装 Podman

完成第 1 部分后,启动您想要安装 podman 的发行版(我的是 Ubuntu-20.04),然后继续执行以下步骤。

步骤 1:添加 Podman PPA 并安装 Podman

在 Ubuntu 上开始安装 Podman 的最简单方法是使用 Kubic 项目。 Kubic 项目提供适用于 Ubuntu 18.04、19.04、19.10 和 20.04 的软件包。您可以轻松地将此软件包添加到您的 Ubuntu 发行版中,如下所示

. /etc/os-release
sudo sh -c "echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/Release.key | sudo apt-key add -
sudo apt-get update -qq
sudo apt-get -qq -y install podman
sudo mkdir -p /etc/containers
echo -e "[registries.search]\nregistries = ['docker.io', 'quay.io']" | sudo tee /etc/containers/registries.conf

确认我们的podman是否安装成功

podman info

host:
  arch: amd64
  buildahVersion: 1.14.9
  cgroupVersion: v1
  conmon:
    package: 'conmon: /usr/libexec/podman/conmon'
    path: /usr/libexec/podman/conmon
    version: 'conmon version 2.0.16, commit: '
  cpus: 8
  distribution:
    distribution: ubuntu
    version: "20.04"
  eventLogger: file
  hostname: Kibet-pc
  idMappings:
    gidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
    uidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
  kernel: 4.19.104-microsoft-standard
  memFree: 12580970496
  memTotal: 13297381376
  ociRuntime:
    name: runc
    package: 'runc: /usr/sbin/runc'
    path: /usr/sbin/runc
    version: 'runc version spec: 1.0.1-dev'
  os: linux
  rootless: true
  slirp4netns:
    executable: /usr/bin/slirp4netns
    package: 'slirp4netns: /usr/bin/slirp4netns'
    version: |-
      slirp4netns version 1.0.0
      commit: unknown
      libslirp: 4.2.0
  swapFree: 4294967296
  swapTotal: 4294967296
  uptime: 1h 36m 59.79s (Approximately 0.04 days)
registries:
  search:
  - docker.io
  - quay.io
store:
  configFile: /home/tech/.config/containers/storage.conf
  containerStore:
    number: 11
    paused: 0
    running: 1
    stopped: 10
  graphDriverName: vfs
  graphOptions: {}
  graphRoot: /home/tech/.local/share/containers/storage
  graphStatus: {}
  imageStore:
    number: 2
  runRoot: /tmp/run-1000/containers
  volumePath: /home/tech/.local/share/containers/storage/volumes

您应该注意到,Podman 已更改为不再自动在用户主目录中生成配置文件。通过 GitHub 上出现的案例了解更多相关信息。

第 2 步:拉取并运行示例容器

运行以下命令从 docker.io 拉取 apline

podman pull alpine

Trying to pull docker.io/library/alpine...
Getting image source signatures
Copying blob df20fa9351a1 done
Copying config a24bb40132 done
Writing manifest to image destination
Storing signatures
a24bb4013296f61e89ba57005a7b3e52274d8edd3ae2077d04395f806b63d83e

拉取后,您可以像这样查看所有图像:

podman images

REPOSITORY                 TAG      IMAGE ID       CREATED       SIZE
docker.io/library/nginx    latest   2622e6cca7eb   8 days ago    136 MB
docker.io/library/alpine   latest   a24bb4013296   2 weeks ago   5.85 MB

现在让我们运行我们的高山图像,看看它是否能够优雅地响应。

podman run -it --rm alpine /bin/sh

/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
v3.12.0-74-gb8f92cf12a [http://dl-cdn.alpinelinux.org/alpine/v3.12/main]
v3.12.0-76-ge6ea27f814 [http://dl-cdn.alpinelinux.org/alpine/v3.12/community]
OK: 12734 distinct packages available
/ #

那真是太美了。您可以打开另一个终端/实例并检查我们的容器是否正在运行。

podman ps

CONTAINER ID  IMAGE                            COMMAND  CREATED        STATUS            PORTS  NAMES
d47342edeb3c  docker.io/library/alpine:latest  /bin/sh  2 minutes ago  Up 2 minutes ago         festive_shtern

我们的容器游得很开心!好东西。

我们希望到目前为止这艘游艇的航行非常棒,并相信您和我们一样喜欢它。因此,我们现在可以在 WSL 版本 2 下的 Linux 发行版中运行 podman。感谢您在航行期间给予我们陪伴,当我们靠岸时,您可以通过单击下面的链接享受另一次旅程。

使用 Podman 设置 Docker 容器注册表并让我们加密 SSL

如何在 Arch Linux 上安装 Podman |曼扎罗

如何在 Debian 上安装 Podman

在 CentOS 8 上安装和使用 Podman | RHEL 8

如何在 Ubuntu 上安装 Podman

如何使用 Podman 和 Libpod 运行 Docker 容器

如何使用 Buildah 构建 OCI 和 Docker 容器映像

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯