如何禁用Docker for Mac / Windows的透明大页面(本机)

时间:2016-07-20 18:30:18

标签: docker docker-compose boot2docker

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

2 个答案:

答案 0 :(得分:3)

您实际上可以使用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

我最终为此创建了一个图像,并使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

答案 1 :(得分:1)

一个更简单的解决方案是创建包含内容的文件配置文件

echo never > /sys/kernel/mm/transparent_hugepage/enabled 
echo never > /sys/kernel/mm/transparent_hugepage/defrag

并将以下行添加到 Dockerfile

COPY profile /var/lib/boot2docker/profile