在Windows 10上运行Podman | Windows Server 2019 with WSL2
这是续集。
您可以通过以下链接以PDF格式下载本文来支持我们。
以PDF格式下载指南
这是续集。
这是续集。
这是续集。
这是续集。
这是续集。
这是续集。
这是续集。
这是续集。
这是续集。
这是续集。
关
这是续集。
这是续集。
这是续集。
您可能已经知道,Linux的Windows子系统(WSL)使开发人员可以直接在未经修改的Windows上运行GNU / Linux环境(包括大多数命令行工具,实用程序和应用程序),而不会增加虚拟机的开销。
WSL 2是Linux子系统Windows子系统的新版本,可为Windows子系统在Windows上运行ELF64 Linux二进制文件提供动力,其主要目标是提高文件系统性能以及增加完全的系统调用兼容性。
在开始运行Podman并使其在Windows 10上运行之前,我们必须安装WSL2,获取我们最喜欢的Linux发行版并继续在其中安装Podman,因此该指南将分为两部分。 WSL2和下一部分将处理Podman的安装以及测试。
第1节:为Linux安装Windows子系统
请按照以下步骤安装WSL2并启动并运行最喜欢的Linux发行版。我将使用Ubuntu 20.04。
步骤1:为Linux启用Windows子系统
在Windows上安装任何Linux发行版之前,必须启用“ Linux的Windows子系统”可选功能。
以管理员身份打开PowerShell并运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
这将在Windows中准备好WSL1。要拥有WSL 2,我们必须对其进行更新,如下一步所示。
步骤2:更新至WSL 2
要更新到WSL 2,Windows必须满足以下条件:
- 运行Windows 10(更新为2004年版本,Build 19041或更高版本)。通过选择Windows徽标键+ R来检查Windows版本,键入winver,然后选择“确定”。
- 启用“虚拟机平台”可选组件在安装WSL 2之前,必须启用“虚拟机平台”可选功能。
请注意,如果不满足上述要求,以后将无法正常工作。将Windows 10更新为2004,Build 19041或更高版本。
以管理员身份打开PowerShell并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重新启动计算机以完成WSL安装并更新到WSL 2。
步骤3:安装Linux Distro
重新启动后计算机恢复正常后,打开“微软商店”应用程序并搜索您最喜欢的Linux Distro。我将搜索并安装Ubuntu 20.04
搜索Ubuntu
安装Ubuntu 20.04 LTS
下载时请耐心等待。
您也可以在安装后启动以确认它是否正常运行。
然后我们去了!
系统会要求您输入用户名和密码。
之后,一切都会变得很好,如下所示。我们已登录并准备进行下一步。
步骤4:将WSL 2设置为默认版本(可选)
在设置WSL 2版本时,您有两个选择。
选项1: 您可以通过在PowerShell上运行以下命令,将特定的Linux发行版设置为由任一版本的WSL支持
wsl --set-version
请确保将其替换为发行版的实际名称以及数字“ 1”或“ 2”。您可以随时通过运行与上述相同的命令将其更改为WSL 1,但将“ 2”替换为“ 1’。
您可以通过键入以下命令来检查所有发行版:
wsl --list --all
选项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/zh-cn/windows/wsl/wsl2-kernel
安装软件包后,再次发出命令,这将需要几秒钟才能完成。
wsl --set-version Ubuntu-20.04 2
转换完成后,您可以通过运行以下命令来检查Linux Distro所具有的WSL版本。
wsl -l -v
NAME STATE VERSION
* Ubuntu-18.04 Stopped 1
Ubuntu-20.04 Stopped 2
如您所见,我们的Ubuntu 20.04是WSL版本2,而另一个是WSL版本1。您可以根据需要将一种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 | Manjaro
如何在Debian上安装Podman
在CentOS 8 | RHEL 8上安装和使用Podman
如何在Ubuntu上安装Podman
如何使用Podman和Libpod运行Docker容器
如何使用Buildah构建OCI和Docker容器映像
这是续集。
您可以通过以下链接以PDF格式下载本文来支持我们。
以PDF格式下载指南
这是续集。
这是续集。
这是续集。
这是续集。
这是续集。
这是续集。
这是续集。
这是续集。
这是续集。
这是续集。
关
这是续集。
这是续集。
这是续集。