16 мая 2022
Переносим нагрузку от Docker Desktop с системного диска
Docker-desktop съедает место на системном диске? Речь, конечно, про Windows 10 и WSL2. Если docker-desktop используем именно его, то нужно понимать: перенос инсталляции ничего не даст. Нужно переносить именно WSL2 подсистемы (их виртуальные диски). Делюсь, на мой взгляд, самым коротким и удобным способом.

Илья Зверев
Архитектор IT-решений
1. Устанавливаем LxRunOffline (удобная CLI утилита для работы с wsl). В моем случае это было просто:
choco install lxrunoffline
2. Теперь в терминале, на всякий, запустим refreshenv, если устанавливали из chocolatey.
3. Посмотрим, какие подсистемы видит lxrunoffline:
>LxRunOffline.exe  l
docker-desktop
docker-desktop-data
4. Отлично. docker-desktop - это базовый образ с docker. docker-desktop-data - здесь докер хранит свой граф - все образы, контейнеры, вольюмы и прочее.
5. Посмотрим, где они располагаются по умолчанию:
>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 оставить на нём. Однако если решите его перенести - список команд будет аналогичный.

6. Подготавливаем папку на другом диске, например, так:
mkdir D:\wsl2\docker\data\
7. С помощью lxrunoffline переносим образ (docker-desktop должен быть выключен!)
LxRunOffline.exe m -n docker-desktop-data -d \\?\D:\wsl2\docker\data\
После окончания переноса, запускаем docker-desktop как обычно - всё будет работать, и теперь место на системном диске не будет зависеть от опытов с Docker и Kubernetes :)
Если было полезно, подписывайтесь на наши каналы с экспертными материалами:

Youtube >
Telegram >
⟵ Назад
Смотрите также