Compartir a través de


Introducción a Container Storage

En este tema se proporciona información general sobre las distintas formas en que los contenedores usan el almacenamiento en Windows. Los contenedores se comportan de forma diferente a las máquinas virtuales en lo que respecta al almacenamiento. Por naturaleza, los contenedores están construidos para evitar que una aplicación que se ejecute dentro de ellos registre el estado en todo el sistema de archivos del host. Los contenedores usan un espacio "temporal" de manera predeterminada, pero Windows también proporciona un medio para conservar el almacenamiento.

Espacio temporal

Los contenedores de Windows usan de forma predeterminada almacenamiento efímero. Toda la E/S del contenedor se produce en un "espacio temporal" y cada contenedor obtiene su propio espacio temporal. La creación de archivos y las escrituras de archivos se registran en el espacio de temporal y no llegan al host. Cuando se detiene una instancia de contenedor, se eliminan todos los cambios que se hayan producido en el espacio temporal. Cuando se inicia una nueva instancia de contenedor, se le proporciona un nuevo espacio de trabajo temporal.

Almacenamiento de capas

Como se describe en la información general de contenedores de , las imágenes de contenedor son un conjunto de archivos expresados como una serie de capas. El almacenamiento de capas es todos los archivos integrados en el contenedor. Cada vez que docker pull, se aplica a docker run ese contenedor, es lo mismo.

Dónde se almacenan las capas y cómo cambiarla

En una instalación predeterminada, las capas se almacenan en C:\ProgramData\docker y se dividen entre los directorios "image" y "windowsfilter". Puede cambiar dónde se almacenan las capas mediante la configuración de docker-root, como se muestra en la documentación del motor de Docker de en Windows.

Nota

Solo se admite NTFS para el almacenamiento de capas. No se admiten ReFS y volúmenes compartidos del clúster (CSV).

No debe modificar ningún archivo de los directorios de capa; se administran cuidadosamente mediante comandos como:

Operaciones admitidas en el almacenamiento en capas

Los contenedores en ejecución pueden utilizar la mayoría de las operaciones NTFS con la excepción de las transacciones. Esto incluye la configuración de ACL y todas las ACL se comprueban dentro del contenedor. Si desea ejecutar procesos como varios usuarios dentro de un contenedor, puede crear usuarios en el Dockerfile con RUN net user /create ..., establecer ACL de archivo y, a continuación, configurar procesos para que se ejecuten con ese usuario mediante la directiva USER de Dockerfile .

Almacenamiento persistente

Los contenedores de Windows admiten mecanismos para proporcionar almacenamiento persistente mediante montajes de enlace y volúmenes. Para más información, consulte Almacenamiento Persistente en Contenedores.

Límites de almacenamiento

Un patrón común para las aplicaciones de Windows es consultar la cantidad de espacio libre en disco antes de instalar o crear nuevos archivos o como desencadenador para limpiar archivos temporales. Con el objetivo de maximizar la compatibilidad de aplicaciones, la unidad C: en un contenedor de Windows representa un tamaño libre virtual de 20 GB.

Es posible que algunos usuarios quieran invalidar este valor predeterminado y configurar el espacio libre en un valor menor o mayor. Esto se puede lograr con la opción "size" dentro de la configuración "storage-opt".

Ejemplo

Línea de comandos: docker run --storage-opt "size=50GB" mcr.microsoft.com/windows/servercore:ltsc2019 cmd

O bien, puede cambiar el archivo de configuración de Docker directamente:

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

Sugerencia

Este método también funciona para la compilación de Docker. Consulte el documento configuración de docker para obtener más información sobre cómo modificar el archivo de configuración de Docker.