函数学习 有些事,记下来是不错的选择...

WSL2下 Debian10 运行Podman

将 OS 相关变量加载到 shell:

. /etc/os-release

添加 repo:

sudo sh -c "echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"

添加 apt key:

curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_${VERSION_ID}/Release.key | sudo apt-key add -

安装前常规更新:

sudo apt update

安装 Podman:

sudo apt install podman

我这里遇到以下错误:

The following packages have unmet dependencies:
 podman : Depends: libseccomp2 (>= 2.4.3-1) but 2.3.3-4 is to be installed
          Depends: dbus-user-session but it is not going to be installed
          Recommends: slirp4netns (>= 100:1.1.8-3) but it is not going to be installed
          Recommends: containernetworking-plugins (>= 100:0.9.1-1) but it is not going to be installed
          Recommends: uidmap but it is not going to be installed
          Recommends: fuse-overlayfs but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

根据提示逐一解决:

apt-get install libseccomp2 dbus-user-session slirp4netns containernetworking-plugins uidmap fuse-overlayfs

其中libseccomp2 可能需要添加源:

deb http://ftp.de.debian.org/debian sid main
deb http://mirrors.aliyun.com/debian sid main

再次运行安装程序后,应该有安装了基本的 Podman,检查哈:

podman info

然后可能会有以下报错:

ERRO[0000] unable to write system event: "write unixgram @00008->/run/systemd/journal/socket: sendmsg: no such file or directory"

编辑或者新建 /etc/containers/containers.conf :

sudo vim /etc/containers/containers.conf

修改 events_logger 从:

events_logger = "journald"

到(新建请新加):

events_logger = "file"

可以通过以下方式来测试Podman功能 :

podman run --name nginx -p 8080:80 -d nginx:alpine

可能会出现以下报错:

Trying to pull docker.io/library/nginx:alpine...
Getting image source signatures
Copying blob 758848c48411 done
Copying blob 0ae30075c5da done
Copying blob 9da81141e74e done

[engine]
Copying blob 540db60ca938 done
Copying blob 7f40e809fb2d done
Copying blob b2e41dd2ded0 done
Copying config a6eb2a334a done
Writing manifest to image destination
Storing signatures
ERRO[0032] unable to write pod event: "write unixgram @0000e->/run/systemd/journal/socket: sendmsg: no such file or directory"
WARN[0032] Failed to add conmon to systemd sandbox cgroup: dial unix /run/systemd/private: connect: no such file or directory
Error: cannot open sd-bus: No such file or directory: OCI not found

同样还是设置containers.conf文件:

vim /etc/containers/containers.conf

更新或者添加如下内容:

[engine]
events_logger="file"
cgroup_manager="cgroupfs"

再次尝试运行nginx:alpine,并打开 http://localhost:8080/ ,看到熟悉的Welcome to nginx! 就完工啦。

更多安装请参照 InstallationHow to run Podman on Windows with WSL2

封面图:「seal-swimming-aquarium」 by Brent Baude (Red Hat)

标签:apt,vim,main,sudo,nginx,etc,podman,installed,recommends
输出:162字,阅读时长 ≈ 1分钟
上一篇:WSL2下 Debian10 卸载docker
下一篇:Win11 官方ISO 文件哈希值

发表评论