Datenverwaltung mit Docker's bindmount und tmpfs (persönliches Memorandum)

Datenverwaltung mit Bind Mount

Im Gegensatz zum Volume werden vom Hostbenutzer verwaltete Dateien und Verzeichnisse in einem Container bereitgestellt. Wieder kann dieselbe Datei oder dasselbe Verzeichnis in mehreren Containern bereitgestellt werden. Da es sich um einen vom Benutzer verwalteten Bereich handelt, bereiten Sie die Mount-Quelldatei oder das Mount-Quellverzeichnis im Voraus vor, geben Sie den Pfad an und hängen Sie ihn in den Container ein. Indem Sie den Quellcode und die Einstellungsdatei des Projekts auf dem Host platzieren und bereitstellen, können Sie den Vorgang überprüfen, während Sie die Datei auf der Hostseite bearbeiten.

Verwenden Sie -v, um ein Verzeichnis im aktuellen Verzeichnis an einen Container zu binden

-# "$(pwd)"Quellverzeichnis im aktuellen Verzeichnis(nicht existieren)Montiert.
$ docker run -itd --name bind-test1 -v “$(pwd)”/source:/app nginx
$ ls
source

Wenn Sie -v verwenden, wird automatisch ein Verzeichnis auf dem Host erstellt, wenn das Verzeichnis nicht vorhanden ist.

Bei Verwendung von --mount

-# “$(pwd)”/Sie mounten ein Verzeichnis, das in source2 nicht vorhanden ist.
$ docker run -itd —-name bind-test2 —mount type=bind,source=“$(pwd)”/source2,target=/app nginx

Geben Sie Typ als Bindung an. Wird ohne ein Verzeichnis namens source2 im aktuellen Verzeichnis ausgeführt. In diesem Fall tritt ein Fehler auf. Im Fall von --mount tritt ein Fehler auf, wenn das Quellverzeichnis nicht vorhanden ist. Dadurch wird verhindert, dass Sie versehentlich ein leeres Verzeichnis bereitstellen. Der Status der Bindungsmontage kann durch Anzeigen der Detailinformationen des Containers sowie des Volumens bestätigt werden.

Überprüfen Sie die Halterung des Containers

-# bind-Detaillierte Bestätigung von Test1
$ docker inspect bind-test1 
"Mounts": [
            {
                "Type": "bind",
                "Source": "/home/docker/source",
                "Destination": "/app",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

Sie können jedes nach Typ, Quelle und Ziel überprüfen. Es ist standardmäßig lesbar und beschreibbar gemountet. Beachten Sie, dass bind mount das Mount-Zielverzeichnis und die Dateien im bind-Verzeichnis verbirgt. Wenn Sie wichtige Dateien und Verzeichnisse mit bind abdecken, funktioniert der Container möglicherweise nicht ordnungsgemäß. Sie können es auch schreibgeschützt mit Bind Mount mounten.

Datenverwaltung mit tmpfs

Hängen Sie den Hostspeicherbereich als Dateisystem in den Container ein. Da die Daten im Speicher gespeichert sind, gehen die Daten verloren, wenn der Docker-Host heruntergefahren oder der Container gestoppt wird. Der Zweck besteht darin, es als Speicherort für Daten zu verwenden, die vorübergehend gespeichert werden, anstatt permanente Daten zu speichern, und Daten zu speichern, die problemlos gelöscht werden können. Bargeld, Einmalpasswort usw. Sie können optional die Mount-Größe begrenzen.

Bei Verwendung von --mount

-#Beispiel
$ docker run -itd --name tmptest --mount type=tmpfs,destination=/app nginx

Geben Sie bei Verwendung von tmpfs tmpfs als Typ an. Standardmäßig ist die Mount-Größe unbegrenzt. Wenn Ihnen der Speicher ausgeht, wird Swap verwendet. Die Größe der Halterung kann durch Angabe von Optionen begrenzt werden.

-#Beispiel
$ docker run -itd --name tmptest2 --mount type=tmpfs,destination=/app,tmpfs-size=500000000,tmpfs-mode=700 nginx

Ich habe die Mount-Größe auf 500 MB und den Dateimodus auf 700 eingestellt.

Recommended Posts

Datenverwaltung mit Docker's bindmount und tmpfs (persönliches Memorandum)
Datenverwaltung mit Volume in Docker (persönliches Memorandum)
Erstellung einer Datenanalyseumgebung mit Docker (persönliches Memorandum)
Erstellen einer CICD-Pipeline mit Docker (persönliches Memorandum)
Docker-Netzwerk (persönliches Memorandum)
Erstellen eines Docker-Hosts in AWS mit Docker Machine (persönliches Memorandum)
Starten Sie einen Docker-Container auf EC2 (persönliches Memorandum)
Docker Compact-Handbuch (2: Mount und Datenpersistenz)
Docker Memorandum
Erstellen einer Kaggle-Umgebung mit offiziellem Docker und vscode
Aufbau einer Django-Entwicklungsumgebung mit Docker-Compose (persönliches Memorandum)