Definições do container WSL

Pode personalizar a forma como o wslc.exe executa contentores, como quantos CPUs e quanta memória a sessão do contentor pode usar, com um ficheiro de definições YAML por utilizador localizado em %LOCALAPPDATA%\wslc\settings.yaml.

Abra o ficheiro de definições

O ficheiro de definições não existe por defeito. Para o criar e abrir no seu editor predefinido para ficheiros .yaml (ou Notepad, se não houver editor associado), execute:

wslc settings

Na primeira execução deste comando, wslc cria o ficheiro com todas as definições comentadas e definidas para default. Descomente uma linha e substitua default pelo seu valor para alterar uma definição. Para sobrescrever novamente o ficheiro com os padrões comentados, execute:

wslc settings reset

Aqui está um arquivo de exemplo settings.yaml :

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

Configurações disponíveis

Todas as definições aceitam o valor default, que usa o valor predefinido incorporado. As definições que faltam no ficheiro também usam o valor predefinido incorporado.

Configuração Value Default Description
session.cpuCount number Todos os processadores lógicos Número de processadores virtuais atribuídos à sessão do contentor. Deve ser maior que 0.
session.memorySize size 50% de memória total no Windows Quantidade máxima de memória atribuída à sessão do contentor, por exemplo 8GB.
session.maxStorageSize size 1TB Tamanho máximo do disco virtual (VHDX) que armazena as imagens e contentores da sessão, por exemplo, 500GB.
session.storagePath caminho %LOCALAPPDATA% Diretório base absoluto para o armazenamento da sessão predefinida. O disco virtual é criado em <storagePath>\wslc\sessions\<session>\storage.vhdx.
session.defaultBindingAddress Endereço IPv4 127.0.0.1 Endereço do host ao qual as portas publicadas ficam vinculadas quando usas wslc container run -p sem especificar um endereço. Defina como 0.0.0.0 para associar a todas as interfaces do host.
session.hostLoopback cadeia (de caracteres) host.wslc.internal Nome DNS que os contentores podem usar para chegar ao anfitrião do Windows. Defina como none para desativar este nome.
session.idleTimeout number 30 O número de segundos em que a VM de sessão permanece a correr depois de ficar inativa antes de desligar. Deve ser maior que 0.
credentialStore wincred ou file wincred Onde são armazenadas as credenciais do registo de contentores de wslc login. wincredutiliza o Windows Credential Manager. file utiliza um ficheiro encriptado por DPAPI em %LOCALAPPDATA%\wslc\registry-credentials.json.

Os valores de tamanho são um inteiro seguido de uma unidade opcional: B,KB/K , MMB/, GGB/,TB/T , ou P/PB (sem distinção entre maiúsculas e minúsculas). As unidades são binárias, tal como 1GB é 1024 MB. Um valor sem unidade é interpretado como bytes, e o valor mínimo é 1 MB.

Note

Mudar session.storagePath depois de uma sessão já existir não move imagens, contentores ou armazenamento existentes. O armazenamento anterior é mantido no local e uma nova sessão vazia é criada no novo local.

Quando as alterações entram em vigor

  • As definições da sessão (session.*) são lidas quando a sessão do contentor começa. Se uma sessão já estiver a correr, pára-a com wslc system session terminate para que o próximo comando wslc inicie uma nova sessão com as definições atualizadas. Uma sessão também desliga-se sozinha depois de estar inativa durante session.idleTimeout segundos.
  • session.defaultBindingAddress e credentialStore são lidos cada vez que executas um wslc comando.

Se o ficheiro de definições contiver uma definição desconhecida, um valor inválido ou YAML inválido, wslc imprime um aviso que inclui o caminho do ficheiro e o número da linha, e usa o padrão incorporado para as definições afetadas.

Note

Estas definições aplicam-se à sessão que wslc.exe utiliza. As definições em .wslconfig não se aplicam aos contentores WSL. Aplicações que utilizam a API de contentores WSL configuram as suas próprias sessões em código, por exemplo com SessionSettings.

Recursos adicionais