Stop containers during backup

In case you are running Docker in Swarm mode, dedicated documentation on service and container restart applies.

In many cases, it will be desirable to stop the services that are consuming the volume you want to backup in order to ensure data integrity. This image can automatically stop and restart containers and services. By default, any container that is labeled docker-volume-backup.stop-during-backup=true will be stopped before the backup is being taken and restarted once it has finished.

In case you need more fine grained control about which containers should be stopped (e.g. when backing up multiple volumes on different schedules), you can set the BACKUP_STOP_DURING_BACKUP_LABEL environment variable and then use the same value for labeling:

services:
  app:
    # definition for app ...
    labels:
      - docker-volume-backup.stop-during-backup=service1

  backup:
    image: offen/docker-volume-backup:v2
    environment:
      BACKUP_STOP_DURING_BACKUP_LABEL: service1
    volumes:
      - data:/backup/my-app-backup:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro

volumes:
  data:

Stop containers during backup without restarting

Sometimes you might want to stop containers for the backup but not have them start again automatically, for example if they are normally started by an external process or scheduler.

For this use case, you can use the label docker-volume-backup.stop-during-backup-no-restart.
This label is mutually exclusive with docker-volume-backup.stop-during-backup and performs the same stop operation but skips restarting the container after the backup has finished.

services:
  app:
    # definition for app ...
    labels:
      - docker-volume-backup.stop-during-backup-no-restart=service2

  backup:
    image: offen/docker-volume-backup:v2
    environment:
      BACKUP_STOP_DURING_BACKUP__NO_RESTART_LABEL: service2
    volumes:
      - data:/backup/my-app-backup:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro

volumes:
  data: