Skip to content

docker-volume-backup

docker-volume-backup (dvb) is used to backup Docker volumes locally or to any S3, WebDAV, Azure Blob Storage, Dropbox or SSH compatible storage.

🛠 Installation

dvb is used as a docker container inside of an already existing Docker compose file.

⚙ Config

This example backs up two volumes in the same compose volume, postgres_data and minio_data.

compose.yaml

---
services:
  # https://offen.github.io/docker-volume-backup/
  backup_postgres: &backup_service
    image: offen/docker-volume-backup:v2.43.3
    environment: &backup_environment
      BACKUP_FILENAME: backup-%Y-%m-%dT%H-%M-%S.tar.gz
      BACKUP_LATEST_SYMLINK: backup-postgres-latest.tar.gz
      BACKUP_PRUNING_PREFIX: backup-postgres-
      BACKUP_RETENTION_DAYS: '14'
      AGE_PUBLIC_KEYS: "${AGE_PUBLIC_KEYS}"
      BACKUP_STOP_DURING_BACKUP_LABEL: service-postgres
    volumes:
      - postgres_data:/backup/my-app-backup:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      # - ${HOME}/backups:/archive
      - /mnt/storage/backup/reactive-resume:/archive
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro

  backup_minio:
    <<: *backup_service
    environment:
      <<: *backup_environment
      BACKUP_FILENAME: backup2-%Y-%m-%dT%H-%M-%S.tar.gz
      BACKUP_LATEST_SYMLINK: backup-minio-latest.tar.gz
      BACKUP_PRUNING_PREFIX: backup-minio-
      BACKUP_STOP_DURING_BACKUP_LABEL: service-minio
    volumes:
      - minio_data:/backup/my-app-backup:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      # - ${HOME}/backups:/archive
      - /mnt/storage/backup/reactive-resume:/archive
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
      # OPENID_USER_INFO_URL:

volumes:
  minio_data:
  postgres_data:

📝 Usage

Backup Manually

docker exec <container_ref> backup

🔗 References