Перенос Docker-контейнеров между серверами

Миграция · 03.02.2025
Перенос Docker-контейнеров между серверами

Метод 1: docker save + docker load

# На старом сервере — сохраняем образ
docker save myapp:latest | gzip > myapp.tar.gz

# Передаём на новый сервер
scp myapp.tar.gz root@NEW_SERVER:/tmp/

# На новом сервере — загружаем образ
docker load < /tmp/myapp.tar.gz

# Проверяем
docker images | grep myapp

Метод 2: Через Docker Registry (рекомендуется)

# Тегируем и пушим в Registry
docker tag myapp:latest registry.example.com/myapp:latest
docker push registry.example.com/myapp:latest

# На новом сервере
docker pull registry.example.com/myapp:latest
💡 Если используете docker-compose, достаточно перенести docker-compose.yml и тома данных — образы пересоберутся или скачаются.

Перенос томов (volumes)

# Экспорт тома
docker run --rm   -v myapp_data:/data   -v $(pwd):/backup   alpine tar czf /backup/volume_backup.tar.gz -C /data .

# Импорт на новом сервере
docker volume create myapp_data
docker run --rm   -v myapp_data:/data   -v $(pwd):/backup   alpine tar xzf /backup/volume_backup.tar.gz -C /data

Чеклист миграции Docker

ШагСтатус
Установить Docker на новом сервере
Перенести docker-compose.yml
Перенести образы или настроить pull из Registry
Перенести тома данных
Обновить .env файлы
Проверить на новом сервере
Переключить DNS
⚠️ Перед остановкой контейнеров на старом сервере убедитесь что все данные синхронизированы, особенно если используются persistent volumes.
← Назад в базу знаний Задать вопрос поддержке