Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
view the rest of the comments
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).
it's better to stop the service mounting those volumes before backing them up or you may break something with hot backup
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
I don't even understand what the advantage is to using volumes rather than mounts? So I too always use mounts.
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.
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.
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)
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.