在Dockerfile中使用--privileged运行命令

12

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

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

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

如果我注释了那行命令并在标志--privileged下运行Dockerfile,则可以在容器中成功运行该命令。

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

谢谢

1个回答

3

虽然不完全是"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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接