使用insmod的docker CMD / sbin / init

时间:2018-03-12 05:04:28

标签: docker

您能告诉我如何在一个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运行这两个?

修改

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

在docker中运行/sbin/init需要systemctl

insmod不允许来自RUN,即使它来自root。目前它是在容器中手动完成的,但我想自动化它

这就是CMD需要insmod和/ sbin / init的原因。

1 个答案:

答案 0 :(得分:0)

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

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

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