Ami*_*mar 5 linux virtualization linux-kernel docker
我有一个在 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"]
Run Code Online (Sandbox Code Playgroud)
但是我没有看到从 mout 命令安装了 Hugepages,为什么?
任何人都可以指出我,是否有可能做到?
手头有很多事情;
首先,一个Dockerfile仅具有单个命令(CMD); 你在做什么是行不通的;如果需要在容器启动时做多个步骤,可以考虑使用入口脚本,例如这是mysql官方镜像的入口脚本
其次,mount在容器中进行操作需要额外的权限。您可以使用,--privileged但这可能太宽泛了,并且为容器提供了太多权限。您可以尝试改为运行容器--cap-add SYS_ADMIN。
一个更简洁的解决方案可能是在主机上安装大页面,并让容器访问该设备,例如;
docker run --device=/dev/hugepages:/dev/hugepages ....
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6063 次 |
| 最近记录: |