This has been my thinking too.
Though after reading mbirth's comment I realised it's possible to use named volumes and explicitly tell it where on disk to store the volume:
volumes:
- my-named-volume:/data/
volumes:
my-named-volume:
driver: local
driver_opts:
type: none
device: "./folder-next-to-compose-yml"
# device: "/path/to/well/known/folder"
o: bind
It's a bit verbose, but at least I know which folder and partition holds the data, while keeping the benefits of named volumes.
How does this work? Where is additional space used for cache, server or client?
Or are you saying everything is on one host at the moment, and you use NFS from the host to the docker container (on the same host)?