podman run with --init 给我:错误:在主机上找不到容器初始化二进制文件:stat /usr/libexec/podman/catatonit:没有这样的文件或目录

podman run with --init 给我:错误:在主机上找不到容器初始化二进制文件:stat /usr/libexec/podman/catatonit:没有这样的文件或目录

当我跑步时podman run --init,我得到

$> podman run --init -ti cp /sbin/init
Error: container-init binary not found on the host: stat /usr/libexec/podman/catatonit: no such file or directory

但我可以很容易地验证那里有一个 init,

$> podman run cp ls -- /sbin | grep init
init
telinit

什么是catatonit?为什么我会收到此错误以及如何解决它?

答案1

该错误不是抱怨,/sbin/init而是抱怨/usr/libexec/podman/catatonit,它指向/usr/libexec/catatonit/catatonit。后者由可能未安装在您的系统上的软件包提供catatonit(它只是 的弱依赖项podman)。

在费多拉上,

sudo dnf install catatonit

应该解决问题(但如果您安装,则应该为您安装该软件包podman)。

在 Debian 上,你会遇到#971815;您必须等待该错误的修复,或者提供您自己的容器init。一种方法是

sudo ln -sf /usr/bin/docker-init /usr/libexec/podman/catatonit

或配置podman为直接使用docker-init而不是catatonit(in ~/.config/containers/containers.conf)。

[containers]
init_path="/usr/bin/docker-init"

答案2

您可以安装container-init二进制文件并在其中定义它容器配置文件,如蒂尼:

[containers]
init_path= "/usr/bin/tini"

也许根本不需要它:

[containers]
init = false

相关内容