Configuración del contenedor de WSL

Puede personalizar cómo wslc.exe ejecuta los contenedores, como el número de CPU y la cantidad de memoria que puede usar la sesión de contenedor, con un archivo de configuración YAML por usuario ubicado en %LOCALAPPDATA%\wslc\settings.yaml.

Abrir el archivo de configuración

El archivo de configuración no existe de forma predeterminada. Para crearlo y abrirlo en el editor predeterminado para archivos .yaml (o el Bloc de notas, si no hay ningún editor asociado), ejecute:

wslc settings

La primera vez que ejecute este comando, wslc crea el archivo con cada configuración comentada y establecida en default. Quite la marca de comentario de una línea y reemplace default por su valor para cambiar una configuración. Para sobrescribir el archivo con los valores predeterminados comentados de nuevo, ejecute:

wslc settings reset

Este es un archivo settings.yaml de ejemplo:

session:
  cpuCount: 4
  memorySize: 8GB
  maxStorageSize: 500GB
  storagePath: D:\data
  defaultBindingAddress: 127.0.0.1
  hostLoopback: host.wslc.internal
  idleTimeout: 60

Configuración disponible

Cada configuración acepta el valor default, que usa el valor predeterminado integrado. Los ajustes que faltan en el archivo también usan el valor predeterminado integrado.

Setting Value Predeterminado Description
session.cpuCount número Todos los procesadores lógicos Número de procesadores virtuales asignados a la sesión de contenedor. Debe ser mayor que 0.
session.memorySize size 50 % de memoria total en Windows Cantidad máxima de memoria asignada a la sesión de contenedor, por ejemplo 8GB.
session.maxStorageSize size 1TB Tamaño máximo del disco virtual (VHDX) que almacena las imágenes y contenedores de la sesión, por ejemplo 500GB.
session.storagePath ruta %LOCALAPPDATA% Directorio base absoluto para el almacenamiento de la sesión predeterminada. El disco virtual se crea en <storagePath>\wslc\sessions\<session>\storage.vhdx.
session.defaultBindingAddress Dirección IPv4 127.0.0.1 Dirección de host a la que se enlazan los puertos publicados cuando se usa wslc container run -p sin especificar una dirección. Establézcalo en 0.0.0.0 para enlazar a todas las interfaces de host.
session.hostLoopback string host.wslc.internal Nombre DNS que los contenedores pueden usar para llegar al host de Windows. Establézcalo en none para desactivar este nombre.
session.idleTimeout número 30 Número de segundos que la máquina virtual de sesión permanece en ejecución después de que se quede inactiva antes de que se apague. Debe ser mayor que 0.
credentialStore wincred o file wincred Donde se almacenan las credenciales del registro de contenedor desde wslc login. wincred usa el Administrador de credenciales de Windows. file usa un archivo cifrado de DPAPI en %LOCALAPPDATA%\wslc\registry-credentials.json.

Los valores de tamaño son un entero seguido de una unidad opcional: B, /KBK, /MMB, G/GB, TBT/ o P/PB (sin distinción entre mayúsculas y minúsculas). Las unidades son binarias, por lo que 1GB es de 1024 MB. Un valor sin una unidad se interpreta como bytes y el valor mínimo es de 1 MB.

Note

Cambiar session.storagePath después de que ya exista una sesión no mueve imágenes, contenedores ni almacenamiento existentes. El almacenamiento anterior se deja en su lugar y se crea una nueva sesión vacía en la nueva ubicación.

Cuando los cambios surtan efecto

  • La configuración de sesión (session.*) se lee cuando se inicia la sesión de contenedor. Si ya se está ejecutando una sesión, deténgala con wslc system session terminate para que el siguiente wslc comando inicie una nueva sesión con la configuración actualizada. Una sesión también se cierra por sí sola después de que haya estado inactiva durante session.idleTimeout segundos.
  • session.defaultBindingAddress y credentialStore se leen cada vez que se ejecuta un comando wslc.

Si el archivo de configuración contiene una configuración desconocida, un valor no válido o YAML no válido, wslc imprime una advertencia que incluye la ruta de acceso del archivo y el número de línea, y usa el valor predeterminado integrado para la configuración afectada.

Note

Esta configuración se aplica a la sesión que wslc.exe usa. La configuración de .wslconfig no se aplica a los contenedores de WSL. Las aplicaciones que usan la API de contenedores WSL configuran sus propias sesiones en el código, por ejemplo, con SessionSettings.

Recursos adicionales