2024-02-25 03:21:00 +08:00
< a href = "https://www.offen.software/" >
< img src = "https://offen.github.io/press-kit/avatars/avatar-OS-header.svg" alt = "offen.software logo" title = "offen.software" width = "60px" / >
2022-01-06 23:07:00 +08:00
< / a >
2021-04-02 19:45:33 +08:00
# docker-volume-backup
2021-04-02 19:59:47 +08:00
2023-08-25 01:33:47 +08:00
Backup Docker volumes locally or to any S3, WebDAV, Azure Blob Storage, Dropbox or SSH compatible storage.
2021-04-02 19:59:47 +08:00
2023-09-16 17:54:39 +08:00
The [offen/docker-volume-backup ](https://hub.docker.com/r/offen/docker-volume-backup ) Docker image can be used as a lightweight (below 15MB) companion container to an existing Docker setup.
It handles __recurring or one-off backups of Docker volumes__ to a __local directory__ , __any S3, WebDAV, Azure Blob Storage, Dropbox or SSH compatible storage (or any combination thereof) and rotates away old backups__ if configured. It also supports __encrypting your backups using GPG__ and __sending notifications for (failed) backup runs__ .
2021-08-29 16:23:25 +08:00
2023-09-16 17:54:39 +08:00
Documentation is found at < https: / / offen . github . io / docker-volume-backup >
- [Quickstart ](https://offen.github.io/docker-volume-backup )
- [Configuration Reference ](https://offen.github.io/docker-volume-backup/reference/ )
- [How Tos ](https://offen.github.io/docker-volume-backup/how-tos/ )
- [Recipes ](https://offen.github.io/docker-volume-backup/recipes/ )
2021-04-02 20:17:09 +08:00
2021-08-29 16:23:25 +08:00
---
## Quickstart
2021-09-11 16:30:36 +08:00
### Recurring backups in a compose setup
2021-08-29 16:23:25 +08:00
Add a `backup` service to your compose setup and mount the volumes you would like to see backed up:
```yml
version: '3'
services:
volume-consumer:
build:
context: ./my-app
volumes:
- data:/var/my-app
labels:
# This means the container will be stopped during backup to ensure
# backup integrity. You can omit this label if stopping during backup
# not required.
- docker-volume-backup.stop-during-backup=true
backup:
2021-09-09 14:58:03 +08:00
# In production, it is advised to lock your image tag to a proper
# release version instead of using `latest` .
# Check https://github.com/offen/docker-volume-backup/releases
# for a list of available releases.
2021-08-29 16:23:25 +08:00
image: offen/docker-volume-backup:latest
restart: always
env_file: ./backup.env # see below for configuration reference
volumes:
- data:/backup/my-app-backup:ro
# Mounting the Docker socket allows the script to stop and restart
# the container during backup. You can omit this if you don't want
2022-02-18 16:08:21 +08:00
# to stop the container. In case you need to proxy the socket, you can
# also provide a location by setting `DOCKER_HOST` in the container
2021-08-29 16:23:25 +08:00
- /var/run/docker.sock:/var/run/docker.sock:ro
# If you mount a local directory or volume to `/archive` a local
# copy of the backup will be stored there. You can override the
# location inside of the container by setting `BACKUP_ARCHIVE` .
# You can omit this if you do not want to keep local backups.
- /path/to/local_backups:/archive
volumes:
data:
```
2021-09-11 16:30:36 +08:00
### One-off backups using Docker CLI
To run a one time backup, mount the volume you would like to see backed up into a container and run the `backup` command:
```console
docker run --rm \
-v data:/backup/data \
--env AWS_ACCESS_KEY_ID="< xxx > " \
--env AWS_SECRET_ACCESS_KEY="< xxx > " \
--env AWS_S3_BUCKET_NAME="< xxx > " \
--entrypoint backup \
2022-03-26 01:27:00 +08:00
offen/docker-volume-backup:v2
2021-09-11 16:30:36 +08:00
```
Alternatively, pass a `--env-file` in order to use a full config as described below.
2024-03-15 18:42:22 +08:00
---
Copyright © 2024 < a target = "_blank" href = "https://www.offen.software" > offen.software< / a > and contributors.
Distributed under the < a href = "https://github.com/offen/docker-volume-backup/tree/main/LICENSE" > MPL-2.0 License< / a > .