# How to Backup and Restore Docker Volumes

## Purpose

Backup and restore Docker volumes to protect persistent container data or migrate storage between servers.

---

## 1. Backup a Docker Volume

Use `tar` to archive a Docker volume:

```bash
docker run --rm \
  -v my_volume:/volume \
  -v $(pwd):/backup \
  alpine \
  tar czf /backup/volume-backup.tar.gz -C /volume . 

```

- `my_volume`: Name of the Docker volume.
- `$(pwd)`: Current directory where the backup will be saved.
- `volume-backup.tar.gz`: Output backup file.

---

## 2. Restore a Docker Volume

Use `tar` to extract the backup:

```bash
docker volume create my_volume
docker run --rm \
  -v my_volume:/volume \
  -v $(pwd):/backup \
  alpine \
  sh -c "cd /volume && tar xzf /backup/volume-backup.tar.gz"

```

- Ensure you restore into a clean, newly created volume to avoid conflicts.

---

## ✅ Summary

- **Always backup volumes** before upgrading or moving containers.
- Use lightweight images like `alpine` to create archives easily.

---

## 🛠️ Useful Commands

- List Docker volumes: `docker volume ls`
- Inspect a volume: `docker volume inspect my_volume`