Windows10 version 2004 (May 2020 Update)のdocker desktopでWSL2のコンテナーと連携する方法についてまとめたメモです。Windows10 version 2004 (May 2020 Update)でWSL2を有効にする - bluebird の続きです。
Windowsならびにdocker desktopは以下のバージョンで検証しています。
- docker desktop 2.3.0.2
- Windows10 Professionalバージョン2004(ビルド 19041.264)
docker desktopのサイトよりdocker desktopのインストーラーをダウンロードしてインストールします。
インストール時に「Enable WSL2 Windows Feature」を選択します。
docker desktopのバックエンドが有効になっていることを確認するには、wsl -l -v
コマンドを実行して、docker-desktop
およびdocker-desktop-data
ディストリビューションのSTATEがRunnning
になっていることを確認します。
> wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Running 2 Ubuntu Running 2 docker-desktop Running 2 docker-desktop-data Running 2
WSLディストリビューションで docker desktopとDockerエンジンのバックエンドを共有するには、docker desktopの「Settings」画面の「Resources」→「WSL INTEGRATION」の「Enable Integration with my default WSL distro」ないし「Enable integration with additional distros」にチェックを入れて「Apply & Restart」を選択します。WSLディストリビューションのLinuxにDockerをインストールする必要はありません。
WSLディストリビューションがdocker desktopと同じDockerエンジンを使っている場合は、/usr/bin/docker
コマンドの向き先が /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker
になっています。
azusa@hayabusa:~$ readlink -f /usr/bin/docker /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker
docker ps -a
コマンドを実行すると、docker desktop(Windows)上とWSLディストリビューション上で同じコンテナーが存在していることがわかります。
PS C:\Users\hiroy> docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 217de94d34d9 hello-world "/hello" 19 seconds ago Exited (0) 19 seconds ago jolly_golick 93565eb0d336 hello-world "/hello" 26 seconds ago Exited (0) 25 seconds ago funny_stonebraker
PS C:\Users\hiroy> ubuntu azusa@hayabusa:~$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 217de94d34d9 hello-world "/hello" About an hour ago Exited (0) About an hour ago jolly_golick 93565eb0d336 hello-world "/hello" About an hour ago Exited (0) About an hour ago funny_stonebraker
次の画面は、docker desktopのWSLのバックエンドでRuby on Railsの開発環境のコンテナーを起動して、Visual Studio Code上で開発している様子です。