> Does anyone in practical invocation specify the volumes?
First: yes, I have run docker with -v recently.
Second:
> Or would they wrap it in yet another shell script that calls docker with a set of options, or a compose file, etc?
> This quickly turns into complexity stacked on complexity...
I agree that it can get out of hand, but a Dockerfile, a compose file, and whatever is going inside the container can be an entirely reasonable set of files to have so long as you stick with that and are reasonable about what goes in each. Where to put it differently, I think it's okay because they actually are separation of concerns.