
Задумывались ли вы, как безопасно переехать с Docker-контейнерами на новый сервер и ничего не сломать? Я вот недавно решился обновить домашний сервер: убрал старый «гроб» и поставил куда более мощную машину. Честно — миграция меня пугала, но всё оказалось удивительно просто.
На деле сам процесс оказался проще, чем ожидал — занял, конечно, какое-то время, но без всяких катастроф. Всё, что нужно — несколько команд и чуточку терпения (особенно если у вас контейнеров не пара штук, а больше). Расскажу, как я переехал на новый сервер шаг за шагом — и всё прекрасно заработало без клонирования старой виртуалки.
- Переезд Docker-хоста — проще, чем вы думаете!
- Всё должно быть готово — как я настраивал новый сервер
- Архивируем Docker-данные: мой рабочий способ
- Копирование файлов между серверами — быстрота поражает!
- Первый запуск Docker на новом сервере — контейнеры поднимаются сами!
- Важные детали и неожиданные нюансы: что может пойти не так
Переезд Docker-хоста — проще, чем вы думаете!
В первый раз я переносил свои Docker-контейнеры в январе, когда решил заменить Unraid на полноценный Docker на Ubuntu в виртуалке. Тоже всё прошло просто: часть приложений смог сохранить средствами самих программ, а что-то пересобрал заново.
Недавно задачка оказалась чуть сложнее: я переносил Docker уже с одного железа на другое. Решил не заморачиваться с целиком виртуалкой и всё поставить на новом сервере «с нуля», а затем вручную перенести всё нужное.
Сначала думал, что придётся останавливать контейнеры на часы, и впереди куча головоломок. Но в реальности всё прошло логично и понятно: были нюансы, но глобальных проблем не случилось — просто уделил несколько часов времени!
Всё должно быть готово — как я настраивал новый сервер

В первую очередь я убедился, что на новом сервере будет ровно та же Ubuntu: выбрал Ubuntu Server 24.04 LTS — этот дистрибутив знаю как свои пять пальцев, работаю с ним больше десяти лет.
После установки системы поставил Docker и всё нужное — если у вас есть GPU, не забудьте про драйверы NVIDIA или Intel. Также создал необходимые папки для будущих Docker-контейнеров и проверил, совпадают ли пути.
Затем остановил сервисы Docker и его сокет такими командами:
Возможно, кто-то ограничится одной, но я решил перестраховаться и отключил всё. Это важно: после этого можно спокойно работать с файловой системой Docker и не бояться потерять данные.
Дальше повторил эти команды и на старом сервере — чтобы точно быть уверенным, что за время переноса ничего не поменяется.
На этом этапе контейнеры были уже выключены. Откроюсь: это был самый неприятный момент — мой домашний сервер управляет всей умной техникой: Home Assistant, Audiobookshelf, Plex и кучей других сервисов. Чтобы не оставить родных без автоматизации, пришлось подобрать время, когда сервер можно остановить.
Дождавшись подходящего момента, полностью отключил Docker и перешёл на следующий шаг — подготовку к копированию данных.
Архивируем Docker-данные: мой рабочий способ

Именно на этом этапе ушло больше всего времени — пришлось подчистить ненужные файлы и каталоги, чтобы ускорить процесс. Но даже так всё вместе заняло несколько часов.
Суть проста: сначала архивируем главный каталог Docker, а затем отдельно архивируем папку для volume-монтажа (если вы её выделяли). Если ваши тома внутри /var/lib/docker, всё делается одной командой.
На старом сервере использовал такую команду:
Она создаёт сжатый архив из /var/lib/docker. В зависимости от количества контейнеров и их «весов» это может занять 30–45 минут, а то и дольше.
Потом аналогично архивируем отдельную папку — у меня, например, все контейнеры лежат в /portainer (Portainer у меня как главный менеджер), а там — отдельные подпапки для каждого. Архивирование /portainer отняло около часа, но у меня там реально десятки гигабайт данных.
Когда оба архива были готовы, перешёл к следующему шагу: копированию на новый сервер.
Копирование файлов между серверами — быстрота поражает!

У меня дома сеть 2,5 Гбит/с — сам Бог велел использовать такую мощь! Для передачи воспользовался командой, которая наглядно показывает прогресс и скорость прямо в терминале:
Так можно наглядно видеть, что перенос идёт как надо. Всё завершилось за считанные минуты — если бы копировал через USB, это затянулось бы намного дольше (старый сервер ещё и с USB 2.0, тут вообще без вариантов).
Когда архивы оказались на новом сервере, просто разархивировал их теми же командами — по нужным каталогам. Начал с Docker-папки:
Дождался завершения процесса и повторил для volume-папки:
Вся эта часть — архивация, копирование, распаковка — самая долгая во всей миграции: у меня ушло почти 4 часа из-за большого объёма данных. Но самое сложное уже позади, дальше — только запуск Docker.
Первый запуск Docker на новом сервере — контейнеры поднимаются сами!
Когда все файлы были на местах, я впервые запустил Docker на новой машине. Всё делается парой простых команд:
Я ждал кучу ошибок, но — чудо! — почти все контейнеры стартовали без каких-либо проблем. Если новая система похожа на старую, то всё вообще должно заработать «из коробки». Но если вы, как и я, что-то радикально поменяли — нюансы всё равно будут. Сейчас расскажу, какие.
Важные детали и неожиданные нюансы: что может пойти не так

Первым делом пришлось переподключить контейнеры с NVIDIA runtime на Intel — раньше был GTX 1650 (для ИИ и транскодинга), сейчас просто процессор i9-13900K с интегрированным видео. Переход вышел немного замороченным (Scrypted так и не «подружился» с новой конфой — оставил на CPU), зато остальные контейнеры поднялись почти сразу.
Главной «граблей» стал Home Assistant — почему-то контейнер после переезда не подтянул старые настройки. Часть конфигов лежала в /portainer/homeassistant, но при запуске сервис стартовал «с нуля». Решилось просто: запустил старую виртуалку, сделал бэкап через интерфейс Home Assistant, залил на новый сервер — всё заработало!
Параллельно пришлось проверить Docker-сети: Scrypted перенёс обратно с дефолтной сети в режим host. Ещё настроил статичный IP на новом сервере и поправил несколько мелких вещей для работы с встроенной графикой.
В общем итоге весь переезд прошёл легко, а новый сервер теперь мощнее, быстрее и экономичнее. Рад, что теперь знаю, как переносить Docker-контейнеры — уверен, что этот навык пригодится ещё не раз!
Если вы только начинаете знакомиться с Docker — обязательно попробуйте: он управляет почти всей бытовой автоматикой на моём сервере.
А ещё у меня есть подборка классных Docker-контейнеров, которые советую всем домашним продвинутым пользователям. Устанавливаются легко — а пользы масса! Мой homelab уже давно стал самым важным гаджетом в доме.
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка — это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!
Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru






