Могу ли я использовать docker tmpfs в WSL2 для запуска контейнеров докеров в ОЗУ?

docker tmpfs работает на wsl2.
Если я запустил это в WSL2:

docker run -it --rm -e POSTGRES_PASSWORD=secret --tmpfs /var/lib/postgresql/data postgres:13-alpine sh

Весь контейнер будет работать в ОЗУ?


person Michael    schedule 17.10.2020    source источник


Ответы (1)


[EDIT] Как обнаружил @Nik, tmpfs в WSL в настоящее время сопоставлен с файловой системой. На уровне командной строки он работает так, как отображается в ОЗУ, но фактически отображается в файловой системе. Итак, позаботьтесь об этом предостережении, пока оно не будет реализовано, как можно было бы предположить.

Согласно вашему первому вопросу: Работает ли docker tmpfs с wsl2?, похоже, ответ - да. Фактически, попробуйте запустить такой контейнер:

$ docker run -it --name tmptest --mount type=tmpfs,destination=/mytmp busybox 

Если вы затем осмотрите контейнер, вы увидите, что /mytmp правильно смонтирован как tmpfs:

"Mounts": [
    {
        "Type": "tmpfs",
        "Source": "",
        "Destination": "/mytmp",
        "Mode": "",
        "RW": true,
        "Propagation": ""
    }
]

Некоторые примечания к вашему второму вопросу Весь контейнер будет работать в ОЗУ?:

  1. В ОЗУ хранится просто содержимое папки /var/lib/postgresql/data, а не весь контейнер, что бы вы ни думали, это означает.

  2. Мне кажется, вы запускаете не базу данных, а оболочку. Итак, если вы не запустите базу данных из оболочки, я думаю, у вас не будет особых преимуществ в наличии /var/lib/postgresql/data в ОЗУ.

  3. Технически говоря, для работы любая программа должна быть загружена в оперативную память или, по крайней мере, в ту часть, которая выполняется в данный момент.

person danidemi    schedule 14.11.2020
comment
Обратите внимание, что это работает, но в WSL2, похоже, на самом деле это не поддержка RAM. reddit.com/r/bashonubuntuonwindows/comments/69zez8/ - person Nik; 13.02.2021
comment
Хороший улов, @Nik, я не знал об этом. Однако указанному вами сообщению исполнилось три года. Вы знаете, применимо ли оно по-прежнему? - person danidemi; 14.02.2021
comment
Да, я обнаружил это вчера, когда пытался что-то оптимизировать в WSL. - person Nik; 15.02.2021
comment
@ Ник, это грустно. Я разрабатываю статические веб-сайты с 11ty в Windows, используя WSL2, и использую tmpfs для выходной папки в режиме dev / watch, чтобы избавить свой SSD от тяжелых операций записи. Моя конфигурация работает, но - судя по вашим комментариям - использование tmpfs для этой цели бесполезно ... Вы знаете какую-нибудь идею / альтернативу, как сделать НАСТОЯЩИЙ RAM-диск внутри WSL2? - person ARS81; 22.03.2021
comment
Не думаю, что это будет легко, но вы можете попробовать поискать альтернативную реализацию tmpfs. Или для вашего сценария, возможно, даже сетевая файловая система может работать на вас (за счет производительности) - person Nik; 22.03.2021