Closed4

WSL2でdocker開発環境構築

wslを使うと、vmmemというプロセスが
メモリを圧迫していくらしい。
私もvmmemのメモリ使用量が3GMを超えてどんどん膨らんでいった。
2つの方法を試してみる。

WSLを使わないときは、以下のコマンドでWSLを終了させる。

wsl --shutdown

wslの使用メモリ限度を設定する

メモリ使用量が無限に増え続けないように、
%USERPROFILE%\.wslconfigに以下を記載する。

[wsl2]
memory=6GB
swap=0

参考:

https://qiita.com/yoichiwo7/items/e3e13b6fe2f32c4c6120
https://qiita.com/kotauchisunsun/items/8b1d879b8f682bb9d55a

docker runしたときのポートフォワードについて理解。

-p 8080:80
-p ホストのポート:コンテナのポート

ローカルホスト8080に接続したらコンテナのポート80に接続できるよってこと。

https://qiita.com/snaka/items/a8eee4cfc8f7d733e6ab

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

https://tracpath.com/works/devops/2017-docker-install/

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だと、接続できない。

後者の環境を作ろうとしていたけど、前者でいいや。

このスクラップは2021/02/20にクローズされました
ログインするとコメントできます