Das folgende Beispiel erstellt dbdata ein benanntes Volume und verweist darauf im Service db:
version: '2'
services:
db:
image: mysql
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
driver: local
(von https://stackoverflow.com/a/35675553/4291814 )
Ich kann den Pfad für die Volume-Standardeinstellungen sehen:
/ var/lib/docker/volume/ Projektname _ dbdata
Meine Frage ist, wie man den Pfad auf Wirt für das dbdata Volumen zusammenbaut.
Mit dem Volume-Treiber local
können beliebige Mounts verwendet werden. mit einem bind mount können Sie genau dies erreichen.
Zum Einrichten eines benannten Volumes, das in/srv/db-data eingebunden wird, sieht Ihre docker-compose.yml folgendermaßen aus:
version: '2'
services:
db:
image: mysql
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/srv/db-data'
Ich habe es nicht mit der Version 2 des Compose-Dateiformats getestet, aber https://docs.docker.com/compose/compose-file/compose-versioning/#version-2 zeigt nicht an , dass es nicht funktionieren sollte.
Ich habe es auch nicht unter Windows getestet ...
Der Speicherort der benannten Volumes wird vom Docker verwaltet. Wenn Sie den Speicherort selbst angeben möchten, können Sie entweder ein Host-Verzeichnis "binden" oder ein Volume-Plugin verwenden, mit dem Sie einen Pfad angeben können.
Sie finden einige Details in einer anderen Antwort, die ich kürzlich gepostet habe. https://stackoverflow.com/a/36321403/1811501