0

我正在尝试使用/sbin/init通过分子进行 ansible 角色测试的过程来启动 Debian 映像。

是的,我知道,/sbin/init除非您确实有这样做的用例,否则不应从容器中开始。使用分子,我可以在 docker 容器中测试我的 ansible 角色。因此我需要/sbin/init跑步。

当我执行

docker run -it --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro debian:9 /sbin/init

docker: Error response from daemon: OCI runtime create failed: container_linux.go:346:
starting container process caused "exec: \"/sbin/init\": stat /sbin/init: no such file 
or directory": unknown.

但是,使用 debian:8 可以正常工作。

docker run -it --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro debian:8 /sbin/init

奇迹般有效。

Debian 是否已切换到新的引导过程?发生了什么变化?

4

1 回答 1

4

原来 Debian 已经init从他们的 docker 镜像中删除了这个包,从 debian:9 和更新的版本开始。

这很棒,因为它可以帮助我们所有人尽早/快速失败。除非我们有这样做的用例,否则我们真的不应该开始/sbin/init- 相信我,大多数时候我们没有。

那么如果我们真的有一个需要运行的用例/sbin/init怎么办?

好吧,我们可以通过安装它

apt-get install -y init

如果你需要一个 Dockerfile

FROM debian:9

RUN apt-get update && apt-get install -y init && apt-get clean all
于 2019-11-19T07:00:07.613 回答