我需要 bee --privileged 在 Dockerfile 中运行特定命令,但我找不到告诉 docker 这样做的方法。

命令是 RUN echo core > /proc/sys/kernel/core_pattern
如果我把它放在 Dockerfile 中,构建过程就会失败。

如果我运行 Dockerfile 时注释了该行但带有标志 --privileged,那么我可以在容器内很好地运行该命令。

是否有任何解决方案可以使 Dockerfile 中的所有内容正常工作?

谢谢

最佳答案

不完全是“Dockerfile”,但您可以使用入口点脚本执行此操作,前提是您始终使用 --privileged 运行容器

话虽如此,如果可能的话,我会警告不要这样做,因为 docker 的美妙之处在于您不会以 root 身份运行。

一个更好的选择,恕我直言,是在主机系统上更改此设置。这样,它也将反射(reflect)在容器内。

唯一需要注意的是,这将反射(reflect)在该系统(当然还有系统本身)上的所有容器上。

这是我建议的解决方案的概念证明:

root@terrorbyte:~# docker run -it alpine cat /proc/sys/kernel/core_pattern
core
root@terrorbyte:~# echo core2 > /proc/sys/kernel/core_pattern
root@terrorbyte:~# docker run -it alpine cat /proc/sys/kernel/core_pattern
core2

关于docker - 在 Dockerfile 中以 --privileged 身份运行命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41602856/

10-16 16:02
查看更多