Hi all

I’m running several docker containers with local persistent volumes that I would like to backup. I haven’t found an easy method to do so.

What do you use / recommend to do that? AFAIK you can’t just rsync the volume directory while the container is running.

  • outcide
    link
    fedilink
    19
    edit-2
    2 years ago

    Use bind mounts instead of docker volumes. Then you just have normal directories to back up, the same as you would anything else.

    In general, it’s not a problem to back up files while the container is running. The exception to this is databases. To have reliable database backups, you need to stop the container (or quiesce/pause the database if it supports it) before backing up the raw database files (including SQLite).

    • MaggiWuerze
      link
      fedilink
      22 years ago

      This is your answer. It also has the benefit of allowing you to have a nice folder structure for your Docker setup, where you have a folder for each service holding the corresponding compose yaml and data folder(s)

    • @[email protected]
      link
      fedilink
      22 years ago

      it’s better to stop the service mounting those volumes before backing them up or you may break something with hot backup

    • mirisbowring
      link
      fedilink
      22 years ago

      Exactly the reason why i always exchange the volumes in any compose file with bind mounts.

      Also you don‘t have the provlem of many dangling volumes

      • asjmcguire
        link
        fedilink
        12 years ago

        I don’t even understand what the advantage is to using volumes rather than mounts? So I too always use mounts.

        • almino
          link
          fedilink
          22 years ago

          I think volumes are useful when you don’t want to deal with those files on the host. Mainly for development environments.

          I wasn’t able to understand volumes at first, and my team mate told me I had to use binders to run mysql. My project folder used to have a docker/mysql/data. Now I just point MySQL data to a volume so I don’t loose data between restarts. And I don’t have to deal with a mysql folder on my project with files I would never touch directly.

          In my opinion, volumes are useful for development / testing environments.

        • @retrodaredevil
          link
          12 years ago

          I’m not sure either. The only thing I could come up with is that with volumes you don’t have to worry about file ownership. That’s usually taken care of for you with volumes from what I understand.

    • @[email protected]
      link
      fedilink
      02 years ago

      docker volume is an exact same normal directory under /var/lib/docker, there’s no difference with regard to backup consistency.

      there’s no silver bullet here, it’s best to use tools specific to whatever is running in the container i.e. wal-g for postgres, etc.