运行 命令在 Dockerfile 中作为 --privileged

Run command as --privileged in Dockerfile

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

命令是RUN echo core > /proc/sys/kernel/core_pattern

如果我将其放入 Dockerfile,构建过程将失败。

如果我 运行 带有该行的 Dockerfile 被注释但带有标志 --privileged 那么我可以 运行 在容器中很好地执行命令。

是否有任何解决方案可以使 Dockerfile 一切正常?

谢谢

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

话虽这么说,但如果可能的话,我会警告不要这样做,因为 docker 的优点之一是您没有 运行 以 root 用户身份运行。

恕我直言,更好的选择是在主机系统上更改它。这样,它也会反映在容器中。

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

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

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