WSL コンテナの設定

wslc.exe にあるユーザーごとの YAML 設定ファイルを使用して、%LOCALAPPDATA%\wslc\settings.yaml でコンテナーを実行する方法 (CPU の数やコンテナー セッションで使用できるメモリの量など) をカスタマイズできます。

設定ファイルを開く

設定ファイルは既定では存在しません。 これを作成し、.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 説明
session.cpuCount 数値 すべての論理プロセッサ コンテナー セッションに割り当てられた仮想プロセッサの数。 0 より大きくなければなりません。
session.memorySize size Windows の合計メモリの 50% コンテナー セッションに割り当てられたメモリの最大量。たとえば 8GB です。
session.maxStorageSize size 1TB セッションのイメージとコンテナーを格納する仮想ディスク (VHDX) の最大サイズ (たとえば 500GB)。
session.storagePath パス %LOCALAPPDATA% 既定のセッションのストレージの絶対ベース ディレクトリ。 仮想ディスクは、 <storagePath>\wslc\sessions\<session>\storage.vhdxに作成されます。
session.defaultBindingAddress IPv4 アドレス 127.0.0.1 アドレスを指定せずに wslc container run -p を使用するときに、発行されたポートがバインドされるホスト アドレス。 すべてのホスト インターフェイスにバインドするには、 0.0.0.0 に設定します。
session.hostLoopback 文字列 host.wslc.internal コンテナーがWindows ホストに到達するために使用できる DNS 名。 この名前を無効にするには、none に設定してください。
session.idleTimeout 数値 30 セッション VM がアイドル状態になってからシャットダウンするまでに実行状態が維持される秒数。 0 より大きくなければなりません。
credentialStore wincred または file wincred wslc loginからのコンテナー レジストリ資格情報が格納される場所。 wincred では、Windows Credential Manager が使用されます。 file は、 %LOCALAPPDATA%\wslc\registry-credentials.jsonで DPAPI で暗号化されたファイルを使用します。

サイズ値は、整数の後に省略可能な単位を続けたものです。 B、 K/KB、 M/MB、 G/GB、 T/TB、または P/PB (大文字と小文字は区別されません)。 単位はバイナリであるため、 1GB は 1024 MB です。 単位のない値はバイトとして解釈され、最小値は 1 MB です。

メモ

セッションが既に存在した後に session.storagePath を変更しても、既存のイメージ、コンテナー、またはストレージは移動されません。 前のストレージはそのまま残り、新しい空のセッションが新しい場所に作成されます。

変更が有効になるとき

  • セッション設定 (session.*) は、コンテナー セッションの開始時に読み取られます。 セッションが既に実行されている場合は、 wslc system session terminate で停止して、次の wslc コマンドが更新された設定で新しいセッションを開始するようにします。 また、session.idleTimeout 秒間アイドル状態になった後、セッションは自動的にシャットダウンされます。
  • credentialStore コマンドを実行するたびに、session.defaultBindingAddress と wslc が読み取られます。

設定ファイルに不明な設定、無効な値、または無効な YAML が含まれている場合、 wslc は、ファイル パスと行番号を含む警告を出力し、影響を受ける設定に組み込みの既定値を使用します。

メモ

これらの設定は、 wslc.exe が使用するセッションに適用されます。 .wslconfigの設定は、WSL コンテナーには適用されません。 WSL コンテナー API を使用するアプリケーションは、たとえば SessionSettings を使用して、コード内で独自のセッションを構成します。

その他のリソース