Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.