Volumes sind der bevorzugte Mechanismus für die Speicherung von Daten, die von Docker-Containern erzeugt und verwendet werden. Während Bind-Mounts von der Verzeichnisstruktur und dem Betriebssystem des Host-Rechners abhängig sind, werden Volumes vollständig von Docker verwaltet. Volumes haben mehrere Vorteile gegenüber Bind-Mounts:
Darüber hinaus sind Volumes oft eine bessere Wahl als die Persistenz von Daten in der beschreibbaren Schicht eines Containers, da ein Volume die Größe der Container, die es verwenden, nicht erhöht und der Inhalt des Volumes außerhalb des Lebenszyklus eines bestimmten Containers existiert.

Bind-Mounts haben im Vergleich zu Volumes eine eingeschränkte Funktionalität. Wenn man Bind-Einhängung verwenden, wird eine Datei oder ein Verzeichnis auf dem Host-Rechner in einen Container eingehängt. Die Datei oder das Verzeichnis wird durch ihren absoluten Pfad auf dem Host-Rechner referenziert. Im Gegensatz dazu wird bei der Verwendung eines Volumes ein neues Verzeichnis innerhalb des Speicherverzeichnisses von Docker auf dem Host-Rechner erstellt, und Docker verwaltet den Inhalt dieses Verzeichnisses.
Die Datei oder das Verzeichnis muss nicht bereits auf dem Docker-Host vorhanden sein. Es wird bei Bedarf erstellt, wenn es noch nicht vorhanden ist. Bind-Mounts sind sehr leistungsfähig, setzen aber voraus, dass im Dateisystem des Host-Rechners eine bestimmte Verzeichnisstruktur vorhanden ist. Wenn Sie neue Docker-Anwendungen entwickeln, sollten Sie stattdessen benannte Volumes verwenden. Sie können keine Docker-CLI-Befehle verwenden, um Bind-Mounts direkt zu verwalten.

Mit Volumes und Bind-Mounts kann man Dateien zwischen dem Host-Rechner und dem Container austauschen, so dass die Daten auch nach dem Stoppen des Containers beibehalten kann.
Wenn man Docker unter Linux einsetz, hat man eine dritte Möglichkeit: tmpfs-Mounts. Wenn man einen Container mit einem tmpfs-Mount erstellen, kann der Container Dateien außerhalb der beschreibbaren Schicht des Containers erstellen.
Im Gegensatz zu Volumes und Bind-Mounts ist ein tmpfs-Mount temporär und wird nur im Speicher des Hosts gehalten. Wenn der Container gestoppt wird, wird die tmpfs-Einhängung entfernt, und die dort geschriebenen Dateien werden nicht gespeichert.
Dies ist nützlich, um sensible Dateien vorübergehend zu speichern, die weder im Host noch in der beschreibbaren Schicht des Containers bestehen bleiben sollen.

https://docs.docker.com/storage/volumes/
https://docs.docker.com/storage/bind-mounts/
https://docs.docker.com/storage/tmpfs/