运行 命令在 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
我需要 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