前書き
WSL(ここのWSLがWSL2を指しています。)とDocker Desktopの組み合わせで色々テストしてみて、凄く便利だと感じて、一応今まで学んだことをメモします。
Linuxのシステムレベルの開発やテストなどはまだ工夫しないといけないかもしれませんが、WebAppの開発、色んなプログラミング・DB・ソフトの動作確認には相当使いやすいと思います。
仮想環境の構築も簡単で、Docker hubにも既存の環境は山ほどありますので、開発や動作確認などは楽になります。
Docker専用のディストリビューション(その1)
WSLエンジンが使用される際、Docker Desktopが専用の「docker-desktop」と「docker-desktop-data」というディストリビューションを使用します。
「docker-desktop」にDockerエンジンがあって、「docker-desktop-data」にDocker Desktopで使用されているイメージがある感じです。
Docker専用のディストリビューション(その2)
Docker専用のディストリビューションはDocker DesktopのGUIに表示されませんが、「wsl -l -v」などのWSLコマンドで表示でき、exportとimportの組み合わせで普通のWSLディストリビューションと同じようにデフォルト以外のところに移動できます。
WSLのディストリビューションの開始・自動停止(その1)
WSLのディストリビューションがPowerShellなどで入ってから起動され、「exit」コマンドなどで閉じた後に、しばらく待つと自動停止になります。
WSLのディストリビューションの開始・自動停止(その2)
Docker Desktopの設定の「WSL INTEGRATION」で統合済みのWSLディストリビューションが、Docker Desktopの起動によって自動開始になり、PowerShellなどで「exit」で閉じても自動停止になりません。
デフォルトのWSLディストリビューション
Docker Desktopの設定の「WSL INTEGRATION」で「Enable integration with my default WSL distro」がチェックされている場合、この設定の下にある統合リストに、該当のデフォルトのWSLディストリビューションが選択されいるかにもかかわらず、統合済みになります。
WSLとDocker Desktopの統合
WSLとDocker Desktopの統合後、WSLのディストリビューションでDockerを実行する際、DockerコマンドもDockerのイメージも、Dockerのコンテナーも、実はDocker専用のディストリビューションを経由して実行されています。