Beginner10 min readUpdated Jan 2025

How to Backup a Docker Container — Complete Visual Beginner Guide

A beginner-friendly, visual explanation of how to back up Docker containers and their data. Learn how to back up volumes, copy container files, export/import containers, and create backup images.


1. Before We Start: What Does “Backup a Docker Container” Mean?

Most people get confused because:

👉 A container is temporary 👉 Data inside container can disappear 👉 You only need to back up data, not the container itself

So when someone says:

“Back up my container”

They really mean:

  • Back up container data
  • Back up container files
  • Back up container configuration
  • Create a restorable snapshot you can run later

There are 3 real ways to back up a Docker container.

Let’s understand each visually.


2. Visual Understanding: What You Must Back Up

A container has two parts:

1 Docker Image (static)
2 Container Data (dynamic)

Visual:

Docker Image      (code, OS, dependencies)
Container Data    (databases, uploads, logs)

Backup needs: Container Data + Optional Image Snapshot

So backup = save data + save container state (optional).


3. Method 1 — Backup Using Docker Volumes (Best Method)

Why?

Because real apps store persistent data in volumes, not inside the container.

Example volume:

/var/lib/mysql  → stored in Docker volume

Step 1 — Find the volume name

docker volume ls

Step 2 — Backup the volume to a .tar file

docker run --rm \
  -v myvolume:/data \
  -v $(pwd):/backup \
  alpine tar czvf /backup/volume-backup.tar.gz /data

This creates:

volume-backup.tar.gz

Step 3 — Restore backup

docker run --rm \
  -v myvolume:/data \
  -v $(pwd):/backup \
  alpine tar xzvf /backup/volume-backup.tar.gz -C /

Visual:

Container → Volume → Backup Tar → Restore

This is the recommended method for production.


4. Method 2 — Export & Import Container (Snapshot Backup)

This backs up the entire container filesystem, but not volumes.

Export container:

docker export container_name > container-backup.tar

Restore container:

docker import container-backup.tar

This creates a new image from your container.

Visual:

Container → TAR File → Imported Image → New Container

Best for:

  • Migrating environments
  • Backing up configuration
  • Saving container state

5. Method 3 — Convert Running Container Into an Image

This creates a backup image directly.

docker commit container_name backup-image

Then save it:

docker save -o backup-image.tar backup-image

Restore it:

docker load -i backup-image.tar

Visual:

Commit → Save → Load → Run new container

Use this when:

  • You modified container manually
  • You want to save environment state
  • You want a restorable snapshot

6. Method 4 — Copy Files Directly From Container (Quick Backup)

If you want to back up only specific files:

docker cp container_name:/path/in/container ./local-folder

Example:

docker cp mysql:/var/lib/mysql ./mysql-backup

Small, simple, fast.


7. Which Method Should You Use? (Visual Decision Guide)

Need database or persistent data?
→ Backup volumes

Need full container snapshot?
→ docker export / docker import

Need repeatable environment?
→ docker commit / docker save / docker load

Need only specific files?
→ docker cp

8. Complete Real-Life Example — Backing Up a MySQL Container

Step 1 — Run MySQL with a volume

docker run -d \
  --name mysql \
  -e MYSQL_ROOT_PASSWORD=pass \
  -v mysqldata:/var/lib/mysql \
  mysql

Step 2 — Backup the volume

docker run --rm \
  -v mysqldata:/data \
  -v $(pwd):/backup \
  alpine tar czvf /backup/mysql.tar.gz /data

Step 3 — Restore to a new machine

docker run --rm \
  -v mysqldata:/data \
  -v $(pwd):/backup \
  alpine tar xzvf /backup/mysql.tar.gz -C /

Done.


9. 5-Second Visual Summary

Container = temporary  
Volume = permanent  

Backup data → use volume backup  
Backup container → export / commit  
Quick backup → docker cp  

This is everything you need to know.


**10. FAQs **

Q1. Does exporting a container back up volumes?

No. docker export does NOT include volumes.


Q2. What is the safest method?

Volume backup. Data lives inside volumes, not containers.


Q3. Can I back up a stopped container?

Yes. No issue at all.


Q4. Should I back up images?

Only if you want reproducible environment snapshots.


Q5. How often should I back up Docker volumes?

For databases → daily For logs → weekly For important apps → before deployments


🏁 Final Words (Your Tone)

Backing up Docker is not complicated — you just need to know what to back up.

Volumes store your real data. Containers store temporary state.

Once you understand this, Docker backup becomes:

“Backup volumes for data. Export/commit for container snapshots. docker cp for quick copies.”

Simple. Clean. Visual. Predictable.


Mastered this concept?

Take the next step in your journey to becoming a senior developer.