その1 https://qiita.com/ssugimoto/items/668d33e4b151933b2e19
その2 https://qiita.com/ssugimoto/items/1b19083f5045e190e4ae
その3 https://qiita.com/ssugimoto/items/3b4a26711604bb6d56d2
その4 この記事
Docker Desktop for Windowsとwsl2 の関係や設定
wsl2 側
- wsl2として、dockerのバックエンド側を docker-desktopを使うようにしている場合(wsl2 Ubuntuをインストールしていない、またはwsl2としてdocker-dektopを使うようにしている場合) や
- マイクロソフトストアから wsl2 Ubuntuはインストールせずに、wsl2をインストールした後に
Docker Desktop for Windows
のみインストールした場合はwsl -l -v
の結果でUbuntuの行はなく、docker-desktop がデフォルトです。
wsl -l -v
コマンドにて確認
wsl2 Ubuntu をインストールしていない場合は、その行は表示されず、Docker Desktop for Windowsを入れていれば、docker-desktopに *
がつく
>wsl -l -v
NAME STATE VERSION
docker-desktop-data Running 2
* docker-desktop Running 2
wsl2 Ubuntu-XX をインストールし wsl2 として Ubuntu-XX を使うようにしている場合(おそらく多くの人はこの状態)
>wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2
docker-desktop-data Running 2
docker-desktop Running 2
*
がどこに付くかにより変わる。上記はwsl2のwslconfig として Ubuntu-20.04 をデフォルトにしている。
Docker Desktop側
-
docker-desktopとして、wsl2を使うかどうかの設定は、 General ->
use the WSL 2 based engine
がチェックONだと、wsl2としてdocker-desktop使う設定です -
他の項目の設定、Docker Desktop for Windowsのデフォルト設定ではwsl2 Ubuntuとwindows内のdocker desktopは連携しない。
上記の wsl -l -v
の結果で、「* docker-desktop
」の状態で、WindowsでDocker desktopを動かし、Windows内の任意のディレクトリに、コンテナ用のファイルを置き、docker run や docker-composeで起動すれば、Docker Desktop for Windowsがコンテナを動かしている状況になります。(Docker Desktop for mac を使うときや、Linuxでdockerコンテナ使うときと同じ)
また、(その3)にて記載の通り、コンテナ用のファイルとして、リモートコンテナのファイルを置けばVSCodeのリモートコンテナを使うことできる。VSCodeのリモートコンテナを使う場合にwsl2 Ubuntuはインストールしていなくても良い(言い換えると、Docker desktop の Settings Resources -> WSL Integration でLinuxディストリビューションは何もなくても良いし、既にインストールしているならば Ubuntu-XX をオフにしても良い)
参考
Dockerの公式ドキュメント
https://docs.docker.com/docker-for-windows/wsl/