项目作者: 01e9

项目描述 :
Backup docker volumes
高级语言: Shell
项目地址: git://github.com/01e9/docker-backup.git
创建时间: 2019-08-15T18:32:58Z
项目社区:https://github.com/01e9/docker-backup

开源协议:

下载


Backup docker volumes

stop containers -> archive volumes -> start containers -> delete old archives

Archives directory is synced with Resilio.

Usage

  1. docker run --rm \
  2. -v /var/run/docker.sock:/var/run/docker.sock \
  3. 01e9/docker-backup \
  4. -c some_container \
  5. -d some_volume_name:some_dir_name \
  6. -c another_container \
  7. -d another_volume_name:another_dir_name \
  8. -d more_volume_name:more_dir_name/sub_dir

Optional environment variables

  • BACKUP_TIME='03:00:00'
  • TZ=Europe/Chisinau

    Makes BACKUP_TIME match host machine time.

    Command to get timezone (on Ubuntu) cat /etc/timezone.

  • RESILIO_SECRET_RW='...'

    By default it will be generated automatically and printed in console.

    You can find it inside container in /etc/resilio.conf.

    Command to generate a read/write secret rslsync --generate-secret.

  • SLACK_WEBHOOK='https://hooks.slack.com/services/...'

    It will send in Slack channel messages like “Backup started/finished/error”.

    https://api.slack.com/incoming-webhooks

docker-compose example

  1. services:
  2. my_backup:
  3. image: 01e9/docker-backup
  4. volumes:
  5. - /var/run/docker.sock:/var/run/docker.sock
  6. environment:
  7. TZ: "Europe/Chisinau"
  8. RESILIO_SECRET_RW: "A6Z...7VE"
  9. command: [
  10. "-c", "container_1",
  11. "-c", "container_2",
  12. "-d", "volume_name_1:directory_name_1",
  13. "-d", "volume_name_2:directory_name_2/sub_directory_1",
  14. ]
  15. restart: unless-stopped