Docker Desktop WSL 2 バックエンドの使い始め

Docker Desktop WSL 2 バックエンド を使ってみています。

今のところ、使ってみた!というだけの記事なのですが、いくつか、気になったところを、書いてみようと思います。

WSL2 と Windows 間のファイル共有

WSL2 は Hyper-V の VM として動いていて、ファイルの共有は、相互にマウントすることで行われてます。

Windows のファイルシステムは、WSL2では /mnt/c に C ドライブがマウントされ、 WSL2のlinux(例 Ubuntu 20.04)のファイルシステムをエクスプローラーから参照するには、\\wsl$\Ubuntu-20.04 です。
ネットワークのファイルシステムのような仕組みになってるんでしょうね。
実際に、WSL2 の terminal で、Windows のファイルシステムのマウント先(/mnt/c 配下)に移動して、そこで docker を実行すると、若干、遅いような気がします。

WSL2で開発の仕事をするんだとしたら、linuxのファイルシステム上で、開発した方がいいです。
vscode にも Remote WSL というのがあって、↑の使い方が、すでに当たり前のようです。

ディレクトリの mv は実際にはコピー

WSL2 を入れて、既存の開発環境を linux 側に移動させようと思って、面倒なので、複数のプロジェクトを mv で一気に移動させようとしたのだけど、エラーになってしまいました。
何が起こったのかと思ったら、Cドライブの空き容量が無くなっているという・・・。
WSL2 <-> Windows間での mv はディレクトリ丸ごとのコピーを行ってるようです。移動元と同じサイズの空き容量がないと、失敗してしまうので、気を付けましょう。

動的メモリ割り当て

Docker Desktop は WSL2 で導入された動的メモリ割り当て機能が活用できます。
WSL2 で Docker を実行するとき、CPU とメモリは、必要量しか使われないため、あらかじめ Docker が使えるメモリ量の設定をしなくてもよいので、より効率的になります。

ただし、↑の状況が、好ましくないときもあります。
私の場合は、Windows 側で Eclipse を動かすときに、問題になりました。
WSL2側で、いろんなDockerコンテナを起動していて、メモリが消費されている状態で、 Eclipse を使うと、なんかモッサリとして、しばらく使い続けてると Eclipse が反応しなくなりました。

WSL2 側でメモリが食われ過ぎて、Windows側のメモリが無くてアプリが重たくなってしまったということだと思います。

Windows 側でも、メモリ食いのアプリケーションを動かすときには、WSL2 側でのメモリ使用量を制限した方がよいです。

WSL2 で最大確保できるメモリサイズは、デフォルトで PC 搭載メモリの 80% になっているようです。
このメモリ割り当ての最大値を小さく設定してみてください。 以下の記事に、そのやり方があります。
https://qiita.com/yoichiwo7/items/e3e13b6fe2f32c4c6120


Docker Desktop WSL 2 バックエンド を使っていくなかで、気になったこと、書き加えていこうと思います。

最近の記事タグ

\(^▽^*) 私たちと一緒に働いてみませんか? (*^▽^)/

少しでも興味をお持ちいただけたら、お気軽に、お問い合わせください。

採用応募受付へ

(採用応募じゃなく、ただ、会ってみたいという方も、大歓迎です。)