WSL2でdocker開発環境構築
WSL2にUbuntuをインストールしていたので、
Ubuntuにdockerをインストールしてみる。
以下の記事を参考にした。
wslを使うと、vmmemというプロセスが
メモリを圧迫していくらしい。
私もvmmemのメモリ使用量が3GMを超えてどんどん膨らんでいった。
2つの方法を試してみる。
WSLを使わないときは、以下のコマンドでWSLを終了させる。
wsl --shutdown
wslの使用メモリ限度を設定する
メモリ使用量が無限に増え続けないように、
%USERPROFILE%\.wslconfig
に以下を記載する。
[wsl2]
memory=6GB
swap=0
参考:
docker run
したときのポートフォワードについて理解。
-p 8080:80
-p ホストのポート:コンテナのポート
ローカルホスト8080に接続したらコンテナのポート80に接続できるよってこと。
wsl2インストールして、docker Desktop for Windows をインストールしたら
wsl2(Ubuntu)内で、docker Desktop for Windowsのコンテナを触る事ができた。
wsl2にDocker (Community Edition)をインストールしてコンテナを起動していたけど、
docker Desktop for Windowsをインストールしたら、wsl2から見れるコンテナが
Docker (Community Edition)からdocker Desktop for Windowsになっていた。
よくわからないので、Docker (Community Edition)はアンインストールした。
wsl2内にdockerとdocker-desktopの2つが存在しているようで気持ち悪かった。
$ sudo apt-get purge docker-ce
$ sudo rm -rf /var/lib/docker
Docker (Community Edition)で作ったコンテナだと、vsdoceのRemote Containerで接続できなかったけど、
docker Desktop for Windowsだと接続できた。
これで、wslでコンテナを作って、vscodeで開発ができるようになった。
今のところわかっているのは、
WSL2 + docker Desktop for Windows + vscodeだと、vscodeのRemote Containerで接続可能。
WSL2 + Docker (Community Edition) + vscodeだと、接続できない。
後者の環境を作ろうとしていたけど、前者でいいや。