Как стать автором
Обновить

Перенос Docker на другой диск в Windows

Время на прочтение2 мин
Количество просмотров13K

Всем привет! Недавно я столкнулся с проблемой нехватки памяти на основном диске под крупный проект, который разворачивается в Docker. Вопрос переноса ресурсов Docker на HDD в 1ТБ стоят принципиально, так как не было других вариантов развернуть проект. И вот, что из этого вышло...


Для начала скажу, что у меня стоит SSD WD Green 120G, где стоит Windows и некоторый важный софт, а на HDD 1ТБ стоят другие программы, проекты и "личная жизнь".

Прислали инструкцию по разворачиванию проекта, где был довольно большой дамп MySql размером более 50Гб и множество контейнеров. Как-то не обращал внимания на этот вопрос, но в процессе оооооочень долгой установки Docker схлопнулся и сказал:

Работать я не буду, я вообще выключаюсь, мне душно и не хватает места на диске, чтобы я тут тебе твои проекты поднимал.

Я устал, я ухожу!

Новость не из приятных была. Крутил этот Docker и так и сяк по всем инструкциям в инете и офф документации, но именно под Windows ничего не выходило. И да, если вы в daemon.json поменяете data-root, то он попросту не будет работать... Здорово, правда?!

Спустя много времени тестов и перенастроек я смог найти решение! Возможно, вы уже знаете о нем, так что не судите строго. Я лишь пытаюсь помочь "путникам в мире Windows с кастрированными жесткими дисками".

И так, хватит болтать и приступим. Делайте все в точности по инструкции и будет вам счастье. Сразу скажу, что у меня Windows с Docker лежит на диске C, а хочу я перенести его на диск D, где есть папка Programs.

# выключаем wsl
wsl --shutdown
# экспортируем данные docker-desktop
wsl --export docker-desktop D:\docker-desktop.tar
# убираем регистрацию данных docker-desktop
wsl --unregister docker-desktop
# импортируем данные docker-desktop в новую директорию
wsl --import docker-desktop D:\wslStore\ D:\docker-desktop.tar --version 2
# удалите D:\docker-desktop.tar

После этих манипуляций, все ваши истории с DockerDesktop будут располагаться в D:\wslStore\. Но, это не означает, что данные (контейнеры, снимки и прочие) будут тоже находиться там. Для переноса именно данных Docker нужна дополнительная связка команд:

# выключаем wsl
wsl --shutdown
# экспортируем данные docker-desktop-data
wsl --export docker-desktop-data D:\docker-desktop-data.tar
# убираем регистрацию данных docker-desktop-data
wsl --unregister docker-desktop-data
# импортируем данные docker-desktop-data в новую директорию
wsl --import docker-desktop-data D:\Programs\Docker\ D:\docker-desktop-data.tar --version 2
# удалите D:\docker-desktop-data.tar

И вот только теперь именно под Windows ваш Docker будет храниться все свое барахло именно по пути D:\Programs\Docker\

Аналогично можно перенести и Ubuntu, и другие истории с wsl/Docker куда вам надо:

wsl --export Ubuntu ubuntu.tar
wsl --unregister Ubuntu
wsl --import Ubuntu D:\wslStore\Ubuntu\ ubuntu.tar --version 2

На эти решения я потратил целый день: то одно пробовал, то другое - и вот нашел рабую схему изменения директории хранения данных Docker под Windows.

Надеюсь, что эта информация была полезна. Ну, а если нет, то сильно не бейте :)

Теги:
Хабы:
Всего голосов 11: ↑8 и ↓3+8
Комментарии20

Публикации

Истории

Работа

DevOps инженер
52 вакансии

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань