docker CMD /sbin/init 和 insmod

问题描述 投票:0回答:1

您能否让我知道如何在一个 CMD 中运行

insmod
/sbin/init

我使用以下 CMD 之一编写了 Dockerfile

CMD [ "insmod", "a_module.ko", "&&", "/sbin/init" ]
CMD insmod a_module.ko && /sbin/init 

然后我就跑

docker run -p 8080:80 -p 4433:443 -it --rm -d --cap-add=ALL --privileged <image id>

它发出容器 ID,但

docker ps
没有显示任何内容。 只有第二个 CMD 可以安装
a_module
,但该进程未运行。

您有什么想法从一个 CMD 运行这两个吗?

编辑

我想在这个容器中设置实验环境。

需要

/sbin/init
才能在docker中运行
systemctl

即使来自 root,也不允许从

insmod

 使用 
RUN
。目前它是在容器中手动完成的,但我想自动化它

这就是为什么需要

CMD
中的 insmod 和 /sbin/init。

docker docker-cmd
1个回答
0
投票

要使用

CMD
运行多个命令,您可以使用:

CMD ["/bin/bash", "-c", "command1 && command2"]

为什么要尝试通过运行

/sbin/init
在容器中运行完整的操作系统服务是另一个问题。这样做不是正常做法。容器通常只运行一个应用程序。根据容器运行时的设置方式,您甚至可能无法运行所有正常的操作系统服务或命令。

© www.soinside.com 2019 - 2024. All rights reserved.