TokuDb в Docker for Mac

Запуск докер-контейнера с TokuDb на macOs вызывает проблему, при которой TokuDb виден в списке энжинов только при первичном создании, а при перезапуске пропадает. Это связано с тем, что при первичном запуске — снимается поддержка THP, а при перезапуске она появляется вновь. Установка THP — это уровень ядра, что не подвластно docker. Так как докер запускается на macOs внутри виртуальной машины — то при запуске Docker for Mac нужно попасть внутрь виртуалки Docker for Mac и снять поддержку THP:

screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
cat /sys/kernel/mm/transparent_hugepage/enabled

Последняя команда — проверяет, что поддержка THP — снята, должно выводиться never

Чтобы выйти из screen — нажать Ctrl+A d

Ранее я пользовался официальным докер-образом percona/percona-server — для установки TokuDB Enginе нужно установить флаг конфигурации INIT_TOKUDB=true, но в связи с последними правками — вынужден был перейти на реально работающий на macOs — miguelangel/percona-tokudb

UPDATE: С конца 2016 года — эти танцы с бубном больше вроде как не нужны в Moby по умолчанию отключили THP — но при тесте я обнаружил что все же нет:

# cat /sys/kernel/mm/transparent_hugepage/enabled
always [madvise] never
а должно быть:
# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]

Так что инструкция до сих пор актуальна.