我在Docker中运行的应用程序需要运行Huge-page。现在我尝试了以下命令集。
CMD ["mkdir", "-p" ,"/dev/hugepages"]
CMD ["mount" ,"-t", "hugetlbfs" , "none", "/dev/hugepages"]
CMD ["echo 512" ,">" ,"/proc/sys/vm/nr_hugepages"]
CMD ["mount"]
但我没有看到Hugepages从mout命令开始,为什么?
有人可以指出我,是否可以这样做?
答案 0 :(得分:4)
手头有很多东西;
首先,Dockerfile只有一个单命令(mount
);你正在做什么是行不通的;如果在启动容器时需要执行多个步骤,请考虑使用入口点脚本,例如this is the entrypoint script of the official mysql image
其次,在容器中执行--privileged
需要额外的权限。您可以使用--cap-add SYS_ADMIN
,但这可能过于宽泛,并且给容器提供了太多的权限。您可以尝试使用docker run --device=/dev/hugepages:/dev/hugepages ....
来运行容器。
更清晰的解决方案可能是在主机上安装大页面,并让容器访问该设备,例如;
{{1}}