Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
DOCKER_TAR_CORRUPT Linux / DevOps

Экспорт и импорт в Docker: разница docker save/load и docker export/import

Обновлено: 21.08.2026
  • После docker import контейнер не запускается с ошибкой no command specified или теряет переменные окружения.
  • Необходимость переноса Docker-образов в закрытые контуры (Air-Gapped окружения) без прямого доступа к Docker Registry.
  • Потребность в сглаживании (Flattening) всех слоев контейнера в один для уменьшения размера и скрытия истории сборки.

1. Различия команд: Сравнительная таблица

Критерийdocker save / loaddocker export / import
Объект работыDocker Image (образ)Docker Container (запущенный/остановленный)
История слоевСохраняет все слои и кэшСхлопывает (flatten) в один слой
Метаданные (CMD, ENV)Полностью сохраняютсяСбрасываются (требуется ручной ввод)

2. Сценарий 1: Перенос образов в закрытый контур (docker save / load)

# Сохранение образа со всеми слоями и тегами в архив
docker save my_app:v1.0 postgres:15-alpine | gzip > app_bundle.tar.gz

# Загрузка архива на целевом сервере
gunzip -c app_bundle.tar.gz | docker load

3. Сценарий 2: Схлопывание слоев контейнера (docker export / import)

# Экспорт файловой системы запущенного контейнера
docker export my_container > container_fs.tar

# Импорт с восстановлением метаданных ENTRYPOINT и CMD
docker import \
  --change "ENV PATH=/usr/local/bin:/usr/bin:/bin" \
  --change "ENTRYPOINT [\"/app/entrypoint.sh\"]" \
  --change "CMD [\"start\"]" \
  container_fs.tar my_flattened_image:v1
Практический опыт инженера: Для Air-Gapped окружений и CI/CD пайплайнов всегда используйте связку docker save / docker load — это гарантирует сохранение всех дайджестов, тегов, метаданных безопасности и структуры слоев.

Частые вопросы (FAQ)

Почему docker import создает образ, который не запускается по умолчанию?

docker export экспортирует только «слепок» файловой системы контейнера, отсекая метаданные манифеста (CMD, ENTRYPOINT, EXPOSE, ENV). При импорте их необходимо заново объявлять через флаг --change.

Можно ли сохранить сразу несколько образов в один tar-архив?

Да, команда docker save image1:tag image2:tag -o multi.tar сохраняет несколько образов и их общие базовые слои в один архив.