After reading and playing around with docker for a short while, I am considering using it in my production environment. However I am still trying to understand the difference between mount binds and volumes.
According to Dockers documentation on mount binds (https://docs.docker.com/storage/bind-mounts/):
Bind mounts have been around since the early days of Docker. Bind mounts have limited functionality compared to volumes. When you use a bind mount, a file or directory on the host machine is mounted into a container. The file or directory is referenced by its full or relative path on the host machine. By contrast, when you use a volume, a new directory is created within Docker’s storage directory on the host machine, and Docker manages that directory’s contents.
From this (and from playing around) it appears to me that mount binds and volumes are the same thing, the only difference being the location of the data. (volumes stored in docker's "private" storage area, while mount binds can be stored anywhere). Yes, mount bind have to exist prior to starting the docker container, while volumes can be created by the docker engine when the container starts- but this difference is irreverent performance or maintenance wise.
I wasn't able to understand the supposedly benefits of volumes stated by the documentation (https://docs.docker.com/storage/volumes/) as all of them seem to apply to mount binds just the same.
Can anyone please explain the main differences between volumes and mount-binds (performance and maintenance wise) and most importantly their use cases?
thanks for the help.