Docker on WSL2 (非 Docker Desktop) の Docker Compose で特定のコンテナに大きめのメモリを割り当てようとして沼ったので、記録を残します。
目次
- 解決までの筋道
- 動作を確認したバージョン
- Docker Compose で Memory 割り当てを設定する方法
- WSLconfig の設定方法
- 最後に
解決までの筋道
Docker-compose.yml に memory の割り当てを記述
↓
Docker stats で確認すると、memory 割り当てが反映されていない
(7.75GiB が上限になっている)
↓
Docker の デフォルトの memory 上限 が WSL2 の memory 上限 に依存していることが分かった (けれど、私 WSL の memory 上限なんて設定していない)
↓
WSL2 の memory 上限のデフォルトは物理メモリの X% ということがわかる
↓
.wslconfig に memory 上限を設定し、WSL2 の memory 上限を変更することで、Docker の memory 上限を変更できた 👏
動作を確認したバージョン
Windows 11
Docker version 26.1.0
WSL version: 2.1.5.0
Docker Compose で Memory 割り当てを設定する方法
Docker Compose の公式ドキュメント を参照してください。
WSLconfig の設定方法
- File Explorer のアドレスバーに
%USERPROFILE%
を入力する - .wslconfig ファイルを作成する
以下は、14GB のメモリを WSL2 に割り当てる例
@"
[wsl2]
memory=14GB
swap=8GB
"@ | Out-File -FilePath .\.wslconfig
- WSL を 再起動 する
wsl --shutdown
最後に
最後までお読み頂きありがとうございます。励みになるので、良かったらいいね 👍 をお願い致します。