Docker での WSL の構成と変更の問題について

Docker での WSL の構成と変更の問題について

https://docs.microsoft.com/ja-jp/windows/wsl/wsl-config を参照してください。

.wslconfig

  • %UserProfile%ディレクトリに保存されます。
  • WSL 2 バージョンとして実行されているすべてのインストール済み Linux ディストリビューションにわたってグローバルに設定を構成するために使用されます。WSL 2 で実行されるディストリビューションにのみ使用できます。
  • WSL 1 として実行されているディストリビューションは、仮想マシンとして実行されていないため、この構成の影響を受けません。
  • %UserProfile%ディレクトリに移動するには、PowerShell でcd ~を使用してホーム ディレクトリ (通常はユーザー プロファイル、 C:\Users\<UserName> ) にアクセスするか、Windows ファイル エクスプローラーを開いてアドレス バーに%UserProfile%と入力します。ディレクトリ パスは、 C:\Users\<UserName>\.wslconfigのようになります。WSL はこれらのファイルの存在を検出し、その内容を読み取り、WSL を起動するたびに構成設定を自動的に適用します。ファイルが見つからないか、形式が正しくない場合 (マークアップの書式が不適切)、WSL は構成設定を適用せずに通常どおり起動し続けます。

実行している WSL のバージョンを確認します。

注記

wsl.conf ファイルを使用してディストリビューションごとの設定を調整できるのは、Windows ビルド 17093 以降のみです。

.wslconfig の構成設定

.wslconfig ファイルは、WSL 2 で実行されているすべての Linux ディストリビューションの設定をグローバルに構成します(ディストリビューションごとの構成については、wsl.conf を参照してください)。

.wslconfig ファイルを保存する場所については、.wslconfig を参照してください。

注記

.wslconfigを使用したグローバル構成オプションは、Windows ビルド 19041 以降で WSL 2 として実行されているディストリビューションでのみ使用できます。これらの変更を有効にするには、 wsl --shutdownを実行して WSL 2 VM をシャットダウンし、WSL インスタンスを再起動する必要がある場合があることに注意してください。

このファイルには、WSL 2 ディストリビューションを実行する VM に影響する次のオプションを含めることができます。

セクションラベル: [wsl2]

価値デフォルトノート
カーネルMicrosoftが構築したカーネルは受信トレイを提供したカスタム Linux カーネルへの絶対 Windows パス。
メモリサイズWindows 上の総メモリの 50% または 8GB のいずれか少ない方。20175 より前のビルドの場合: Windows 上の総メモリの 80% WSL 2 VM に割り当てるメモリの量。
プロセッサ番号Windows上のプロセッサ数は同じWSL 2 VM に割り当てるプロセッサの数。
ローカルホスト転送ブール値真実WSL 2 VM 内のワイルドカードまたはローカルホストにバインドされたポートが、localhost:port 経由でホストから接続可能かどうかを指定するブール値。
カーネルコマンドライン空白追加のカーネルコマンドライン引数。
スワップサイズWindows のメモリ サイズの 25% を最も近い GB に切り上げます。 WSL 2 VM に追加するスワップ領域の量。スワップ ファイルがない場合には 0 です。スワップ ストレージは、ハードウェア デバイスのメモリ需要が制限を超えた場合に使用されるディスクベースの RAM です。
スワップファイル%USERPROFILE%\AppData\Local\Temp\swap.vhdxスワップ仮想ハード ディスクへの絶対 Windows パス。
ページレポートブール値真実デフォルトの true 設定により、Windows は WSL 2 仮想マシンに割り当てられた未使用のメモリを再利用できるようになります。
GUIアプリケーションブール値*真実WSL での GUI アプリケーション (WSLg) のサポートをオンまたはオフにするブール値。Windows 11 でのみ使用できます。
デバッグコンソールブール値*間違いWSL 2 ディストリビューション インスタンスの起動時に dmesg の内容を表示する出力コンソール ウィンドウをオンにするブール値。Windows 11 でのみ使用できます。
ネストされた仮想化ブール値*真実ネストされた仮想化をオンまたはオフにするブール値。これにより、他のネストされた VM が WSL 2 内で実行できるようになります。Windows 11 でのみ使用できます。
vmIdleタイムアウト番号* 60000 VM がシャットダウンされるまでのアイドル時間 (ミリ秒)。Windows 11 でのみ使用できます。

path値のエントリは、エスケープされたバックスラッシュを含む Windows パスである必要があります (例: C:\\Temp\\myCustomKernel

size値のエントリは、サイズとそれに続く単位 (例: 8GBまたは512MB ) でなければなりません。

値のタイプの後に * が付いているエントリは、Windows 11 でのみ使用できます。

.wslconfig ファイルの例

以下の.wslconfigサンプル ファイルは、使用可能な構成オプションの一部を示しています。この例では、ファイル パスはC:\Users\<UserName>\.wslconfigです。

# 設定はWSL 2で実行されているすべてのLinuxディストリビューションに適用されます
[wsl2]
 
# VM メモリの使用を 4 GB 以下に制限します。これは GB または MB を使用して整数として設定できます。
メモリ=4GB
 
# VMが2つの仮想プロセッサを使用するように設定します
プロセッサ=2
 
# インストールしたディストリビューションで使用するカスタム Linux カーネルを指定します。使用されるデフォルトのカーネルは https://github.com/microsoft/WSL2-Linux-Kernel にあります。
カーネル=C:\\temp\\myCustomKernel
 
# 追加のカーネルパラメータを設定します。この場合は Centos 6 などの古い Linux ベースイメージを有効にします。
kernelCommandLine = vsyscall = エミュレート
 
# スワップストレージ容量を 8GB に設定します。デフォルトは使用可能な RAM の 25% です。
スワップ=8GB
 
# スワップファイルのパスの場所を設定します。デフォルトは %USERPROFILE%\AppData\Local\Temp\swap.vhdx です。
スワップファイル=C:\\temp\\wsl-swap.vhdx
 
# ページレポートを無効にすると、WSL は Windows から要求されたすべての割り当て済みメモリを保持し、空きになったときに何も解放しません。
ページレポート=false
 
# WSL 2 ローカルホストを Windows ローカルホストにバインドするためのデフォルト接続をオフにします
ローカルホスト転送=true
 
# ネストされた仮想化を無効にする
ネストされた仮想化=false
 
# デバッグ用に WSL 2 ディストリビューションを開くときに、dmesg の内容を表示する出力コンソールをオンにします
デバッグコンソール=true

これで、docker での WSL 構成変更に関するこの記事は終了です。docker での WSL 構成変更に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker 経由で wsl の tar ファイルを作成する方法
  • IDEA で Docker を WSL2 にデプロイする詳細なプロセス
  • Docker Desktop をインストールすると、エラー メッセージが表示されます: WSL 2 のインストールが完了していません (エラー メッセージを解決してください)
  • Windows 10にWSL2 Ubuntu20.04をインストールしてdocker環境を構築する方法
  • Windows 10 サブシステム Ubuntu (WSL) に Docker をインストールするチュートリアル (画像とテキスト付き)

<<:  CSS3で実装された天気アイコンのアニメーション効果

>>:  完全なMySQL学習ノート

推薦する

MySQL 5.7 JSON 型の使用の詳細

JSON は、言語に依存しないテキスト形式を使用する軽量のデータ交換形式で、XML に似ていますが、...

Docker で nginx の https を設定する方法

https をサポートしていない Web サイトは、ブラウザによって徐々に安全でないとマークされるた...

JavaScript でフロントエンドのカウントダウン効果を実装する

この記事では、フロントエンドのカウントダウン効果を実現するためのJavaScriptの具体的なコード...

Apache Bench ストレステストツールの実装原理と使用状況分析

1: スループット(1秒あたりのリクエスト数)サーバーの同時処理能力を定量的に表したもので、reqs...

jsを使用してシンプルな弾幕スクリーンシステムを実装する

この記事では、弾幕効果を実現するためのネイティブjsの具体的なコードを参考までに共有します。具体的な...

組み込み移植 docker エラー問題 (概要)

長い移植と情報検索の期間を経て、組み込みDockerの問題を解決することができました。インターネット...

HTML の左右レイアウトのサンプルコード

CS: ...コードをコピーコードは次のとおりです。 html,body{ margin:0px; ...

JSにおけるnewの原理と実装について詳しく話しましょう

目次意味コンストラクタ本体は異なる戻り値なし戻りオブジェクト非オブジェクトを返すプロパティバインディ...

CSS でマウスの位置をマッピングし、マウスを動かしてページ要素を制御する (サンプル コード)

マウスの位置をマッピングしたり、ドラッグ効果を実装したりすることは、 JavaScriptで行うこと...

Vue での mixin の応用について議論する

Mixin は、再利用可能な機能を Vue コンポーネント間で分散する非常に柔軟な方法を提供します。...

Kafka の Docker デプロイメントと Spring Kafka 実装

この記事は主にDockerによるKafkaのデプロイとSpring Kafkaの実装について紹介しま...

7つの基本的なXHTMLコーディングルールの概要

1. すべてのタグには対応する終了タグが必要です以前の HTML では、<p> や &l...

Vueメソッドに基づくシンプルなタイマーの実装

Vueのシンプルなタイマーを参考にしてください。具体的な内容は以下のとおりです原理: setInte...

JavaScript オブジェクト指向の実践の詳細説明: カプセル化とオブジェクトのドラッグ

目次概要1. DOM要素をアニメーション化する方法2. 現在のブラウザでサポートされている変換互換の...

webpackを使用してTypeScriptコードをパッケージ化およびコンパイルする方法を教えます

TypeScript バンドルwebpack 統合通常、実際の開発では、ビルド ツールを使用してコー...