Dies ist ein persönliches Memo.
Verwendung des von Docker oder Docker-Compose angegebenen Volumes.
Es gibt einen Unterschied zwischen (1) äußeren Volumes und (2) Volumes in Diensten in docker-compose.yml.
docker-compose.yml Beispiel
version: "3.7"
volumes:
todo-mysql-data:
services:
mysql:
image: mysql:5.7
volumes:
- todo-mysql-data:/var/lib/mysql
Volumes in derselben Hierarchie wie die Version bereiten Volumes mit dem angegebenen Namen vor.
Dies wird als "benanntes Volume" bezeichnet.
volumes:
todo-mysql-data:
--Volumes können von mehreren Containern gemeinsam genutzt werden.
Volumes in jedem Dienst heißen ** bind mount ** und unterscheiden sich von Volumes.
** Stellt den Prozess des Mountens (Freigebens) des Verzeichnisses im Container und des Verzeichnisses auf der Hostseite dar **.
services:
mysql:
image: mysql:5.7
volumes:
- todo-mysql-data:/var/lib/mysql
Im obigen Beispiel wird das Volume "todo-mysql-data" im Container auf "/ var / lib / mysql" gemountet.
Jetzt können Sie die Daten in / var / lib / mysql mit dem Volume synchronisieren.
Artikel | Binden Sie die Halterung | Inhalt |
---|---|---|
Benanntes Volumen | datavolume:/var/lib/mysql | Hängen Sie das angegebene Volume in das angegebene Verzeichnis im Container ein |
Anonymes Volumen | /var/lib/data | Geben Sie nur das Verzeichnis im Container an. Ein Volumen von Hashwerten wird zugewiesen. (Es verschwindet, wenn der Container gelöscht wird) |
Stammverzeichnis freigeben(Relativer Pfad) | .:app | Hängen Sie das angegebene Verzeichnis im Container in das laufende Verzeichnis auf der Hostseite ein. |
Angegeben durch absoluten Pfad | /opt/data:/var/lib/mysql | Hängen Sie das angegebene Verzeichnis im Container in das angegebene Verzeichnis auf der Hostseite ein. |
Ich sehe oft Beschreibungen wie ".: App".
Auf diese Weise können die Daten im Container auf der Hostseite reproduziert werden. (Ohne dies können die Daten auf der Hostseite nicht angezeigt werden.)
Artikel | Benanntes Volumen | Anonymes Volumen |
---|---|---|
Hauptanwendungen | ・(1)Teilen eines Volumes mit mehreren Containern (Beispiel: db)(2)Von der Synchronisation zur Hostseite ausschließen(Beispiel: Knoten_module) | Daten, die nicht mit anderen Containern geteilt werden müssen, sondern aufbewahrt werden sollen (Beispiel: Protokoll) |
Container löschen | Bleibt (containerunabhängig) | Verschwinden |
Recommended Posts