我需要 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/