はじめに
今回はWindowsHomeにWSL2+Docker環境をつくったのでまとめてみます
環境
OS | Windows10 Home |
version | 2004 |
ビルド | 19041 |
WSL2の導入の前に...
WSL2の導入には前提条件があります
まず、Windows10のversionが2004になっていることと、Virtual Boxを使用していないことです
Virtual Boxが入ってる場合、WSL2をインストールすると起動しません!!
余談ですが、VMwareは最新のバージョンにすると使えます
WSL2導入
この内容はここにわかりやすくかかれてますので、省略します
WSL2導入|WinアップデートからWSL2を既定にするまでのスクショ
docker導入
OSのインストールも無事終わりDockerHubをただインストールするのみです
ここまでは簡単にいくのですがここでまさかの事件です!!
WSL2+Docker導入PCのプチ事故
Zoom + VMwareを起動するとVMwareで起動したOSの画面がフラッシュするのです
原因は簡単です
Vmmemと呼ばれるプロセスがメモリをChrome並みに食べるのです....
microsoft/WSLのIssueは1年近くOpenのままとなっており、Microsoft側も問題を認識して取り組んでいるものの未だに根本対処されていません。
https://github.com/microsoft/WSL/issues/4166
さぁ、このままだとちょっとまずいのでVmmemの消費量を食い止めましょう!!
Vmmemの消費量を食い止める
暫定対処でメモリサイズを固定することにしました....(というよりほかの方法がない気がする...)
WSL2のメモリサイズを固定することでWindowsホストのメモリ枯渇を防ぎます。
原因について興味がある人は後述しているのでそちらを参照してください。
%USERPROFILE%.wslconfigのコンフィグに以下の設定を行います。
- %USERPROFILE%はC:\Users\taroのようなホームディレクトリを指します。
- コンフィグが存在しない場合は作成してください。
- 設定した後は必ずOSを再起動してください。
[wsl2]
memory=4GB
memoryで使用メモリを固定しています
私的には4GBでも十分動かせます
ここはPCのメモリ量と相談してください....
Vmmemが大量消費する条件
- Visual Studio Code + Remote Extension(WSL)を使用してる
- Docker Desktop WSL2を使用してる
- 大きなコードベースで開発してる
参考URL
WSL2によるホストのメモリ枯渇を防ぐための暫定対処
WSL2導入|WinアップデートからWSL2を既定にするまでのスクショ