Параметры контейнера WSL

Вы можете настроить, как wslc.exe запускает контейнеры, например сколько ЦП и сколько памяти может использовать сеанс контейнера, с помощью файла параметров YAML для каждого пользователя, расположенного по адресу %LOCALAPPDATA%\wslc\settings.yaml.

Откройте файл параметров

По умолчанию файл параметров отсутствует. Чтобы создать его и открыть его в редакторе по умолчанию для файлов .yaml (или в Блокноте, если редактор не связан), выполните следующую команду:

wslc settings

При первом запуске этой команды wslc создает файл, в котором все параметры закомментированы и заданы значением default. Раскомментируйте строку и замените default значением, чтобы изменить параметр. Чтобы снова перезаписать файл с закомментированными значениями по умолчанию, выполните следующую команду:

wslc settings reset

Ниже приведен пример файла settings.yaml:

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

Доступные параметры

Каждый параметр принимает значение default, которое означает использование встроенного значения по умолчанию. Параметры, отсутствующие в файле, также используют встроенное значение по умолчанию.

Setting Ценность Default Description
session.cpuCount Номер Все логические процессоры Число виртуальных процессоров, назначенных сеансу контейнера. Должно быть больше 0.
session.memorySize size 50 % общей памяти в Windows Максимальный объем памяти, назначенный сеансу контейнера, например 8GB.
session.maxStorageSize size 1TB Максимальный размер виртуального диска (VHDX), который хранит образы и контейнеры сеанса, например 500GB.
session.storagePath path %LOCALAPPDATA% Абсолютный базовый каталог для хранилища сеанса по умолчанию. Виртуальный диск создается по адресу <storagePath>\wslc\sessions\<session>\storage.vhdx.
session.defaultBindingAddress IPv4-адрес 127.0.0.1 Адрес узла, к которому привязываются опубликованные порты при использовании wslc container run -p без указания адреса. Установите значение 0.0.0.0, чтобы привязать ко всем интерфейсам узла.
session.hostLoopback string host.wslc.internal DNS-имя, которое контейнеры могут использовать для доступа к узлу Windows. Установите значение none, чтобы отключить это имя.
session.idleTimeout Номер 30 Количество секунд, в течение которых виртуальная машина сеанса остается запущенной после перехода в состояние простоя перед отключением. Должно быть больше 0.
credentialStore wincred или file wincred Где хранятся учетные wslc login данные реестра контейнеров. wincredиспользует диспетчер учетных данных Windows. file использует зашифрованный DPAPI-файл по адресу %LOCALAPPDATA%\wslc\registry-credentials.json.

Значения размера — целое число, за которым следует необязательная единица: B, /KBK, M/MB, /TBT, GBG/ или P/PB (без учета регистра). Единицы являются двоичными, поэтому 1GB составляет 1024 МБ. Значение без единицы интерпретируется как значение в байтах, а минимальное значение — 1 МБ.

Note

Изменение session.storagePath после того, как сеанс уже существует, не перемещает существующие образы, контейнеры или хранилище. Предыдущее хранилище остается на месте, а новый пустой сеанс создается в новом расположении.

Когда изменения вступают в силу

  • Параметры сеанса (session.*) считываются при запуске сеанса контейнера. Если сеанс уже запущен, остановите его с помощью wslc system session terminate, чтобы следующая команда wslc начала новый сеанс с обновленными параметрами. Сеанс также завершает работу самостоятельно после того, как он неактивен в течение session.idleTimeout секунд.
  • session.defaultBindingAddress и credentialStore считываются каждый раз при выполнении команды wslc.

Если файл параметров содержит неизвестный параметр, недопустимое значение или недопустимый YAML, wslc выводит предупреждение, содержащее путь к файлу и номер строки, и использует встроенное значение по умолчанию для затронутых параметров.

Note

Эти параметры применяются к сеансу, который использует wslc.exe. Параметры в .wslconfig не применяются к контейнерам WSL. Приложения, использующие API контейнеров WSL, настраивают собственные сеансы в коде, например, с помощью SessionSettings.

Дополнительные ресурсы