Beispiel unten DBData genannt Volumen und Verweise es innerhalb db Service:
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 Lautstärke standardmäßig sehen:
/var/lib/docker/volumes/<project_name>_dbdata
Meine Frage ist, wie man den Pfad auf dem Host für das dbdata
Volume konfiguriert .
docker
docker-compose
volume
Mischa
quelle
quelle
Antworten:
Mit dem
local
Volume-Treiber können beliebige Mounts verwendet werden. Mit einem Bind Mount können Sie genau dies erreichen.Zum Einrichten eines benannten Volumes, in das eingebunden wird
/srv/db-data
,docker-compose.yml
sieht es folgendermaßen aus: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 ...
quelle
Der Speicherort der benannten Volumes wird vom Docker verwaltet. Wenn Sie den Speicherort selbst angeben möchten, können Sie entweder ein Hostverzeichnis "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
quelle
local
Volume-Plugin verwenden, das mit Docker selbst geliefert wird. siehe meine Antwort für ein Beispiel.Ab
docker-compose v3.2
jetzt können Sie es wie folgt tun:Hinweis: Viele, wie ich dachte, wenn Sie sagen, dass
version: "3"
es die neueste / neueste V3 verwenden würde, werden nicht verwendetv3.0
. Sie MÜSSEN mindestens angeben3.2
, um die folgende Konfigurationsmethode zu verwenden.https://docs.docker.com/compose/compose-file/#volumes
Hinweis:
Benannte Volumes müssen wie gezeigt unter dem Schlüssel für Volumes der obersten Ebene aufgeführt sein.
quelle
dbdata
der Servicedb
als Volumen zugeordnet? @FreeSoftwareServers