如何禁用Mac / Windows的Docker的透明Hugepages(本机)

需要为TokuDB引擎和Redis禁用透明巨大页面。 使用docker-toolbox,我可以将docker-machine ssh放入主机并禁用它。 我不再有权访问主机操作系统,那么如何禁用它?

实际上,您可以在Docker For Mac / Windows中使用特权容器来做到这一点。 你可以这样做:

docker run -ti --privileged ubuntu /bin/bash echo never | tee /sys/kernel/mm/transparent_hugepage/enabled echo never | tee /sys/kernel/mm/transparent_hugepage/defrag 

我结束了为此创build一个图像,并使redis / mariadb将其包含在我的docker-compose.yml文件中的depends_on下

 FROM ubuntu:latest COPY ./docker-entrypoint.sh / ENTRYPOINT ["/docker-entrypoint.sh"] 

其中docker-entrypoint.sh有:

 #!/bin/bash set -e echo never | tee /sys/kernel/mm/transparent_hugepage/enabled echo never | tee /sys/kernel/mm/transparent_hugepage/defrag