Dela via


Översikt över containerlagring

Det här avsnittet innehåller en översikt över olika sätt för containrar att använda lagring i Windows. Containrar fungerar annorlunda än virtuella datorer när det gäller lagring. Containrar är utformade för att förhindra att en app som körs i dem skriver data över hela värdssystemets filsystem. Containrar använder ett "scratch"-utrymme som standard, men Windows tillhandahåller också ett sätt att spara lagringsutrymme.

Scratch Space

Windows-containrar använder som standard tillfällig lagring. Alla container-I/O sker i ett "reputrymme" och varje container får en egen repa. Filskapande och filskrivningar fångas upp i scratch-utrymmet och överförs inte till värden. När en containerinstans stoppas kastas alla ändringar som har inträffat i scratch-utrymmet bort. När en ny containerinstans startas tillhandahålls ett nytt ledigt utrymme för instansen.

Lagerlagring

Enligt beskrivningen i Containers Overviewär containeravbildningar ett paket med filer som uttrycks som en serie lager. Layer Storage är alla filer som är inbyggda i containern. Varje gång du docker pull sedan docker run containern är de desamma.

Var lager sparas och hur man ändrar det

I en standardinstallation lagras lager i C:\ProgramData\docker och delas över katalogerna "image" och "windowsfilter". Du kan ändra var lagren lagras med hjälp av konfigurationen docker-root, vilket visas i dokumentationen Docker Engine i Windows.

Anteckning

Endast NTFS stöds för lagerlagring. ReFS och klusterdelade volymer (CSV) stöds inte.

Du bör inte ändra några filer i lagerkatalogerna – de hanteras noggrant med hjälp av kommandon som:

Åtgärder som stöds i lagerlagring

Containrar som körs kan använda de flesta NTFS-åtgärder med undantag för transaktioner. Detta inkluderar att ange ACL:er och alla ACL:er kontrolleras i containern. Om du vill köra processer som flera användare i en container kan du skapa användare i din Dockerfile med RUN net user /create ..., ange fil-ACL:er och sedan konfigurera processer som ska köras med användaren med hjälp av Dockerfile USER-direktivet.

Beständig lagring

Windows-containrar stöder mekanismer för att tillhandahålla beständig lagring via bindningsmonteringar och volymer. Mer information finns i Beständig Lagring i Containrar.

Lagringsgränser

Ett vanligt mönster för Windows-program är att fråga efter mängden ledigt diskutrymme innan du installerar eller skapar nya filer eller som en utlösare för att rensa temporära filer. Med målet att maximera programkompatibiliteten representerar C: -enheten i en Windows-container en virtuell kostnadsfri storlek på 20 GB.

Vissa användare kanske vill åsidosätta den här standardinställningen och konfigurera det lediga utrymmet till ett mindre eller större värde. detta kan åstadkommas genom alternativet "storlek" i konfigurationen "storage-opt".

Exempel

Kommandorad: docker run --storage-opt "size=50GB" mcr.microsoft.com/windows/servercore:ltsc2019 cmd

Eller så kan du ändra docker-konfigurationsfilen direkt:

"storage-opts": [
    "size=50GB"
  ]

Tips

Den här metoden fungerar även för Docker Build. Mer information om hur du ändrar docker-konfigurationsfilen finns i dokumentet konfigurera docker.