What are the pros and cons of using Named vs Anonymous volumes in Docker for self-hosting?
I've always used "regular" Anonymous volumes, and that's what is usually in official docker-compose.yml examples for various apps:
volumes:
- ./myAppDataFolder:/data
where myAppDataFolder/ is in the same folder as the docker-compose.yml file.
As a self-hoster I find this neat and tidy; my docker folder has a subfolder for each app. Each app folder has a docker-compose.yml, .env and one or more data-folders. I version-control the compose files, and back up the data folders.
However some apps have docker-compose.yml examples using named volumes:
services:
mealie:
volumes:
- mealie-data:/app/data/
volumes:
mealie-data:
I had to google documentation https://docs.docker.com/engine/storage/volumes/
to find that the volume is actually called mealie_mealie-data
$ docker volume ls
DRIVER VOLUME NAME
...
local mealie_mealie-data
and it is stored in /var/lib/docker/volumes/mealie_mealie-data/_data
$ docker volume inspect mealie_mealie-data
...
"Mountpoint": "/var/lib/docker/volumes/mealie_mealie-data/_data",
...
I tried googling the why of named volumes, but most answers were talking about things that sounded very enterprise'y, docker swarms, and how all state information should be stored in "the database" so you shouldnt need to ever touch the actual files backing the volume for any container.
So to summarize: Named volumes, why? Or why not? What are your preferences?
Given the context that we are self-hosting, and not running huge enterprise clusters.
Default look n feel does feel a couple of decades outdated. But it can easily be customized to look look much more modern and comfortable.
Youtube tutorials on how to get started often begins with customizing the user interface before even starting the modeling tutorial. I recommend Deltahedra and Mangojelly on YouTube