DEV Community

Гимаев Наиль
Гимаев Наиль

Posted on • Edited on

Перенос docker wsl2 на соседний ssd

Лирика

Так уж получилось, что мой компьютер развивался эволюционно, сначала был только один ssd объёмом 120GB. Со временем появился появился второй SSD объёмом 240GB, на который переехала виртуальная машина huper-v с docker внутри. Для этого было достаточно сменить соответствующую настройку в Docker Desktop. Совсем недавно мой Windows обновился до версии 2004. И у меня появилась возможность задействовать WSL2. Включив WSL2 в Docker Desktop обнаружил, остатки свободного места заняты, а системе поплохело. Настроить средствами Docker Desktop расположение wsl-подсистемы нельзя. Зато можно это сделать средствами windows через командную строку.

Update 1. Перенос docker автоматически

После того, как я написал статью, github предложил посмотреть проект, который делает тоже самое. Смотреть я не стал, но возможно он сэкономит время вам. https://github.com/pxlrbt/move-wsl

Перенос docker

Сначала нужно закрыть Docker Desktop, чтобы его значка в трее не было.
Нам потребуются права администратора. Нажмём Win+X и выберем "Командная строка (администратор)"
Данный код можно скачать

:: С двойного двоеточия начинаются комментарии, 
:: поэтому можно весь код скопировать и вставить 
:: в командную строку или в батник.

:: 1. Окончательно усыпим Docker Desktop, чтобы он не нервничал, когда wsl пропадёт

   sc stop com.docker.service

:: 2. Остановим все wsl-машины, чтобы все файловые кэши сбросить на диск

   wsl --shutdown

:: 3. Сделаем дампы подсистем докера

   wsl --export docker-desktop-data d:\dumps\docker-desktop-data.tar
   wsl --export docker-desktop d:\dumps\docker-desktop.tar

:: 4. Удалим подсистемы докера

   wsl --unregister docker-desktop-data
   wsl --unregister docker-desktop

:: 5. Восстановим подсистемы докера в новом расположении

   wsl --import docker-desktop-data d:\wsl\docker-desktop-data d:\dumps\docker-desktop-data.tar --version 2
   wsl --import docker-desktop d:\wsl\docker-desktop d:\dumps\docker-desktop.tar --version 2

:: 6. Запустим службу Docker Desktop

  sc start com.docker.service

Теперь можно запускать Docker Desktop и пользоваться.

Примечание №1. Команды писал по памяти и мог где-то ошибиться. Напишите в комментариях, если найдёте ошибку.
Примечание №2. Чтобы освободить ещё немного места, можно заменить на символические ссылки базовые образы докера в "Program Files", а сами образы положить туда, где места много.

Top comments (0)