Delen via


Overzicht van Container Storage

In dit onderwerp vindt u een overzicht van de verschillende manieren waarop containers opslag in Windows gebruiken. Containers gedragen zich anders dan virtuele machines als het gaat om opslag. Containers worden van nature gemaakt om te voorkomen dat een app die daarin draait, de status over het volledige bestandssysteem van de host beschrijft. Containers maken standaard gebruik van een 'scratch'-ruimte, maar Windows biedt ook een middel om opslag te behouden.

Kladruimte

Windows-containers maken standaard gebruik van tijdelijke opslag. Alle container-I/O vindt plaats in een 'scratchruimte' en elke container krijgt een eigen scratch. Het maken van bestanden en het schrijven van bestanden worden vastgelegd in de scratchruimte en ontsnappen niet aan de host. Wanneer een containerinstantie wordt gestopt, worden alle wijzigingen die zijn opgetreden in de scratchruimte weggegooid. Wanneer een nieuwe containerinstantie wordt gestart, wordt er een nieuwe tijdelijke schijfruimte aan de instantie aangeboden.

Opslaglaag

Zoals beschreven in de Overzicht van containers, zijn containerimages een bundel van bestanden die worden gepresenteerd als een reeks lagen. Laagopslag is alle bestanden die zijn ingebouwd in de container. Telkens wanneer u docker pull en vervolgens docker run met die container doet, is het resultaat hetzelfde.

Waar lagen worden opgeslagen en hoe u deze kunt wijzigen

In een standaardinstallatie worden lagen opgeslagen in C:\ProgramData\docker en verdeeld over de mappen 'image' en 'windowsfilter'. U kunt wijzigen waar de lagen worden opgeslagen met behulp van de docker-root-configuratie, zoals wordt weergegeven in de documentatie van Docker Engine in Windows.

Notitie

Alleen NTFS wordt ondersteund voor laagopslag. Gedeelde ReFS- en clustervolumes (CSV) worden niet ondersteund.

U moet geen bestanden in de laagmappen wijzigen. Ze worden zorgvuldig beheerd met behulp van opdrachten zoals:

Ondersteunde bewerkingen in laagopslag

Actieve containers kunnen de meeste NTFS-bewerkingen gebruiken met uitzondering van transacties. Dit omvat het instellen van ACL's en alle ACL's worden gecontroleerd in de container. Als u processen als meerdere gebruikers in een container wilt uitvoeren, kunt u gebruikers in uw Dockerfile maken met RUN net user /create ..., bestands-ACL's instellen en vervolgens processen configureren die met die gebruiker moeten worden uitgevoerd met behulp van de Dockerfile USER-instructie.

Permanente opslag

Windows-containers ondersteunen mechanismen voor het bieden van permanente opslag via bindingskoppelingen en -volumes. Zie permanente opslag in containersvoor meer informatie.

Opslaglimieten

Een veelvoorkomend patroon voor Windows-toepassingen is het opvragen van de hoeveelheid vrije schijfruimte voordat u nieuwe bestanden installeert of maakt of als trigger voor het opschonen van tijdelijke bestanden. Met als doel de compatibiliteit van toepassingen te maximaliseren, vertegenwoordigt het C:-station in een Windows-container een virtuele vrije grootte van 20 GB.

Sommige gebruikers willen deze standaardinstelling negeren en de vrije ruimte configureren op een kleinere of grotere waarde. Dit kan worden bereikt via de optie 'grootte' in de configuratie 'storage-opt'.

Voorbeeld

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

U kunt het docker-configuratiebestand ook rechtstreeks wijzigen:

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

Tip

Deze methode werkt ook voor docker-build. Zie het document docker configureren voor meer informatie over het wijzigen van het docker-configuratiebestand.