Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Thema finden Sie eine Übersicht über die verschiedenen Möglichkeiten, wie Container Speicher unter Windows verwenden. Container verhalten sich anders als virtuelle Computer, wenn es um den Speicher geht. Von Natur aus werden Container erstellt, um zu verhindern, dass eine App, die darin ausgeführt wird, den Zustand überall im Dateisystem des Hosts schreiben kann. Container verwenden standardmäßig einen temporären Speicherbereich, aber Windows bietet auch eine Möglichkeit zum persistenten Speichern.
Temporärer Speicherbereich
Windows-Container verwenden standardmäßig ephemeren Speicher. Alle Container-E/A-Vorgänge werden in einem temporären Speicherbereich ausgeführt, und jeder Container erhält einen eigenen temporären Speicherbereich. Dateierstellungs- und Dateischreibvorgänge werden im Zwischenspeicher erfasst und gelangen nicht zum Host. Wenn eine Containerinstanz beendet wird, werden alle Änderungen verworfen, die im temporären Speicherbereich vorgenommen wurden. Wenn eine neue Containerinstanz gestartet wird, wird ein neuer temporärer Speicherplatz für die Instanz bereitgestellt.
Schichtspeicher
Wie im Containers Overviewbeschrieben, sind Containerimages ein Bündel von Dateien, die als eine Reihe von Ebenen ausgedrückt werden. Layerspeicher sind alle Dateien, die im Container enthalten sind. Sie führen jedes Mal einen docker pull
- und dann einen docker run
-Vorgang für diesen Container aus: Sie sind identisch.
Wo Ebenen gespeichert werden und wie sie geändert werden
In einer Standardinstallation werden Ebenen in C:\ProgramData\docker
gespeichert und in den Verzeichnissen "Image" und "windowsfilter" aufgeteilt. Sie können ändern, wo die Ebenen mithilfe der docker-root
-Konfiguration gespeichert werden, wie in der Dokumentation Docker Engine unter Windows gezeigt.
Anmerkung
Nur NTFS wird für den Layerspeicher unterstützt. ReFS und freigegebene Clustervolumes (Cluster Shared Volumes, CSV) werden nicht unterstützt.
Sie sollten keine Dateien in den Layerverzeichnissen ändern – sie werden sorgfältig mithilfe von Befehlen verwaltet, z. B.:
Unterstützte Vorgänge im Layerspeicher
Laufende Container können die meisten NTFS-Vorgänge mit Ausnahme von Transaktionen nutzen. Dazu gehören das Festlegen von ACLs, und alle ACLs werden innerhalb des Containers überprüft. Wenn Sie Prozesse als mehrere Benutzer innerhalb eines Containers ausführen möchten, können Sie Benutzer in Ihrer Dockerfile
mit RUN net user /create ...
erstellen, Datei-ACLs festlegen und dann Prozesse so konfigurieren, dass sie mit diesem Benutzer mithilfe der Dockerfile USER-Direktiveausgeführt werden.
Beständiger Speicher
Windows-Container unterstützen Mechanismen, um persistenten Speicher über Bind-Mounts und Volumes bereitzustellen. Weitere Informationen finden Sie unter Persistenter Speicher in Containern.
Speicherbeschränkungen
Ein gängiges Muster für Windows-Anwendungen besteht darin, den freien Speicherplatz abzufragen, bevor neue Dateien installiert oder erstellt werden, oder als Trigger zum Bereinigen temporärer Dateien. Mit dem Ziel, die Anwendungskompatibilität zu maximieren, stellt das Laufwerk C: in einem Windows-Container eine virtuelle freie Größe von 20 GB dar.
Einige Benutzer möchten diese Standardeinstellung möglicherweise außer Kraft setzen und den freien Speicherplatz auf einen kleineren oder größeren Wert konfigurieren. Dies kann durch die Option "Größe" innerhalb der Konfiguration "Speicher-Opt" erreicht werden.
Beispiel
Befehlszeile: docker run --storage-opt "size=50GB" mcr.microsoft.com/windows/servercore:ltsc2019 cmd
Sie können die Docker-Konfigurationsdatei auch direkt ändern:
"storage-opts": [
"size=50GB"
]
Tipp
Diese Methode funktioniert auch für Docker-Build. Weitere Informationen zum Ändern der Docker-Konfigurationsdatei finden Sie im Konfigurieren des Docker- Dokuments.