docker tmpfs работает на wsl2.
Если я запустил это в WSL2:
docker run -it --rm -e POSTGRES_PASSWORD=secret --tmpfs /var/lib/postgresql/data postgres:13-alpine sh
Весь контейнер будет работать в ОЗУ?
docker tmpfs работает на wsl2.
Если я запустил это в WSL2:
docker run -it --rm -e POSTGRES_PASSWORD=secret --tmpfs /var/lib/postgresql/data postgres:13-alpine sh
Весь контейнер будет работать в ОЗУ?
[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": ""
}
]
Некоторые примечания к вашему второму вопросу Весь контейнер будет работать в ОЗУ?:
В ОЗУ хранится просто содержимое папки /var/lib/postgresql/data
, а не весь контейнер, что бы вы ни думали, это означает.
Мне кажется, вы запускаете не базу данных, а оболочку. Итак, если вы не запустите базу данных из оболочки, я думаю, у вас не будет особых преимуществ в наличии /var/lib/postgresql/data
в ОЗУ.
Технически говоря, для работы любая программа должна быть загружена в оперативную память или, по крайней мере, в ту часть, которая выполняется в данный момент.
tmpfs
для выходной папки в режиме dev / watch, чтобы избавить свой SSD от тяжелых операций записи. Моя конфигурация работает, но - судя по вашим комментариям - использование tmpfs
для этой цели бесполезно ... Вы знаете какую-нибудь идею / альтернативу, как сделать НАСТОЯЩИЙ RAM-диск внутри WSL2?
- person ARS81; 22.03.2021