Configurações de contêiner do WSL

Você pode personalizar como wslc.exe executa contêineres, como quantas CPUs e quanta memória a sessão de contêiner pode usar, com um arquivo de configurações YAML por usuário localizado em %LOCALAPPDATA%\wslc\settings.yaml.

Abrir o arquivo de configurações

O arquivo de configurações não existe por padrão. Para criá-lo e abri-lo no editor padrão de arquivos .yaml (ou Bloco de Notas, se nenhum editor estiver associado), execute:

wslc settings

Na primeira vez que você executar esse comando, wslc cria o arquivo com todas as configurações comentadas, com o valor definido como default. Descomente uma linha e substitua default pelo seu valor para alterar uma configuração. Para sobrescrever o arquivo com as configurações padrão comentadas novamente, execute:

wslc settings reset

Veja um arquivo settings.yaml de exemplo:

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

Cada configuração aceita o valor default, que usa o valor padrão interno. As configurações que estão ausentes no arquivo também usam o padrão interno.

Setting Value Padrão Description
session.cpuCount número Todos os processadores lógicos Número de processadores virtuais atribuídos à sessão de contêiner. Deve ser maior que 0.
session.memorySize size 50% da memória total no Windows Quantidade máxima de memória alocada à sessão de contêiner, por exemplo 8GB.
session.maxStorageSize size 1TB Tamanho máximo do disco virtual (VHDX) que armazena as imagens e contêineres da sessão, por exemplo 500GB.
session.storagePath caminho %LOCALAPPDATA% Diretório base absoluto para o armazenamento da sessão padrão. O disco virtual é criado em <storagePath>\wslc\sessions\<session>\storage.vhdx.
session.defaultBindingAddress Endereço IPv4 127.0.0.1 O endereço do host ao qual as portas publicadas se vinculam quando você usa wslc container run -p sem especificar um endereço. Defina como 0.0.0.0 para vincular-se a todas as interfaces do host.
session.hostLoopback cadeia host.wslc.internal Nome DNS que os contêineres podem usar para acessar o host Windows. Defina como none para desabilitar este nome.
session.idleTimeout número 30 Número de segundos em que a VM da sessão permanece em execução depois de ficar ociosa antes de ser desligada. Deve ser maior que 0.
credentialStore wincred ou file wincred Onde as credenciais do registro de contêiner wslc login são armazenadas. wincred usa o Windows Credential Manager. file usa um arquivo criptografado por DPAPI em %LOCALAPPDATA%\wslc\registry-credentials.json.

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

Note

Alterar session.storagePath após a existência de uma sessão não move imagens, contêineres ou armazenamento existentes. O armazenamento anterior é deixado no local e uma nova sessão vazia é criada no novo local.

Quando as alterações entrarem em vigor

  • As configurações de sessão (session.*) são lidas quando a sessão de contêiner é iniciada. Se uma sessão já estiver em execução, interrompa-a com wslc system session terminate para que o próximo comando wslc inicie uma nova sessão com suas configurações atualizadas. Uma sessão também é desligada por conta própria depois de ficar ociosa por session.idleTimeout segundos.
  • session.defaultBindingAddress e credentialStore são lidos sempre que você executa um wslc comando.

Se o arquivo de configurações contiver uma configuração desconhecida, um valor inválido ou YAML inválido, wslc imprimirá um aviso que inclui o caminho do arquivo e o número de linha e usará o padrão interno para as configurações afetadas.

Note

Essas configurações se aplicam à sessão que wslc.exe usa. As configurações em .wslconfig não se aplicam a contêineres WSL. Os aplicativos que usam a API de contêiner do WSL configuram suas próprias sessões no código, por exemplo, com SessionSettings.

Recursos adicionais