Переносим нагрузку от Docker Desktop с системного диска
Столкнулся с тем что docker-desktop съедает место на системном диске? Речь конечно про Windows 10 и WSL2. Если docker-desktop используем именно его, то нужно понимать что перенос инсталляции ничего не даст. Нужно переносить именно WSL2 подсистемы (их виртуальные диски)
Делюсь на мой взгляд самым коротким и удобным способом:
- устанавливаем LxRunOffline (удобная CLI утилита для работы с wsl). В моем случае это было просто:
choco install lxrunoffline
- теперь в терминале на всякий запустим
refreshenv
если устанавливали из chocolatey - Посмотрим какие подсистемы видит
lxrunoffline
:
>LxRunOffline.exe l
docker-desktop
docker-desktop-data
- Отлично.
docker-desktop
это базовый образ с docker.docker-desktop-data
- здесь докер хранит свой граф - все образы, контейнеры, вольюмы и прочее. - посмотрим где они располагаются по-умолчанию:
>LxRunOffline.exe di -n docker-desktop
\\?\C:\Users\{username}\AppData\Local\Docker\wsl\distro
>LxRunOffline.exe di -n docker-desktop-data
\\?\C:\Users\{username}\AppData\Local\Docker\wsl\data
Теперь понятно - если папка профиля пользователя оставлена на системном диске (С: в нашем случае), То все наши опыты с Docker и Kubernetes будут съедать драгоценное место на системном диске. Их нужно перенести. Но переносить основной образ Docker не обязательно: Он меньше 200 MiB и не будет расти в процессе эксплуатации (изменение его размера обусловлено только дистрибутивом docker). Если системный диск быстрее - рекомендую ```docker-desktop оставить на нём. Однако если решите его перенести - список команд будет аналогичный
- подготавливаем папку на другом диске, например так:
mkdir D:\wsl2\docker\data\
- С помощью
lxrunoffline
переносим образ (docker-desktop должен быть выключен!)
LxRunOffline.exe m -n docker-desktop-data -d \\?\D:\wsl2\docker\data\
После окончания переноса, запускаем docker-desktop как обычно - всё будет работать, и теперь место на системном диске не будет зависеть от опытов с Docker и Kubernetes :)