QA
Beginner LevelDocker & Deployment

What is the difference between docker save/load and docker export/import?

❓ Interview Prompt: Compare docker save/load (image with layers) vs docker export/import (flat container filesystem) for portability and offline transfer.

Docker provides two mechanisms for transferring images/containers as files — they operate at different levels:

docker save / docker load (Image Transfer — Preferred):

•
Saves: The complete image including all read-only layers, metadata, tags, and history.
•
Load: Restores the image with full layer cache intact.
•
Use case: Transferring images to air-gapped servers, backing up images before registry migration.
•
Produces a .tar file containing all image layers as separate files.

docker export / docker import (Container Filesystem):

•
Exports: The container's merged filesystem as a single flat tarball — no layer history, no metadata.
•
Import: Creates a new image from the flat tarball (single layer, no history).
•
Use case: Inspecting container filesystem contents; creating minimal base images.
•
Results in a single-layer image — loses all caching benefits.

Key Difference:

save/load preserves layers and metadata (recommended). export/import flattens everything into a single layer.

Code Implementation Example

bash
# === docker save / load (IMAGE transfer — preferred) ===

# Save image with all layers to a compressed tar
docker save myapp:v1.2.3 | gzip > myapp-v1.2.3.tar.gz

# Save multiple images to one archive
docker save myapp:v1.2.3 postgres:16-alpine | gzip > bundle.tar.gz

# Load on target machine (restores all layers + tags)
docker load < myapp-v1.2.3.tar.gz
docker images myapp   # ✅ myapp:v1.2.3 present with full layer cache


# === docker export / import (CONTAINER filesystem — flat) ===

# Export running container's merged filesystem
docker run -d --name mycontainer myapp:v1.2.3
docker export mycontainer | gzip > mycontainer-fs.tar.gz

# Import as new image (single flat layer, no history)
docker import mycontainer-fs.tar.gz myapp-flat:latest
docker history myapp-flat   # Only 1 layer — no layer history
💡save/load preserves multi-layer image; export/import creates a flat single-layer snapshot of a container filesystem.
🎯 Interview Key Takeaway

Use docker save/load for image portability (preserves layers + tags). Use docker export/import only for filesystem inspection or creating minimal base images.

#Docker#docker save#docker export#Image Transfer#Portability#Beginner
Back to all Docker & Deployment Questions→

More Docker & Deployment Interview Questions

Beginner LevelDocker & Deployment

How do Docker Multi-Stage Builds minimize image size and improve security?

Beginner LevelDocker & Deployment

What is the difference between a Docker Container and a Virtual Machine (VM)?

Beginner LevelDocker & Deployment

What is the difference between a Docker Image and a Docker Container?