【Docker】UbuntuからDocker Desktopへの疎通方法
こんにちは。
WSL2環境を導入したPCの中で、UbuntuからDocker Desktop(for Windows)に接続する機会があり、その設定方法の覚書ブログとなります。
なお、こちらのブログのように、Docker Desktopの有料化に伴い、Desktopを使用せずにUbuntuにDockerをそのままインストールする方法もあります。
が、今回は、個人利用のため有料化要件(1000万ドル以上または従業員250人以上)に引っかからないところから、Docker Desktopを使用した方法を試行しています。
Ubuntu(WSL2)からDockerを疎通する
1. Docker Desktopをインストール
Docker Desktop for Windowsのインストーラーをこちらからインストールします。
インストーラーを起動し、Docker Desktopをインストールします。(設定値は一旦デフォルトのままでOK)
2. Ubuntuディストリビューションを使用する設定
Docker Desktop画面にて、Settingsを開きます。

General項目にて、「Use the WSL 2 based engine (Windows Home can only run the WSL 2 backend)」をオンにします。
※WSL2環境を構築している場合は、こちらの項目はオン済みとなっているはず
また、後述するが、PC立ち上げ時にDocker Desktopを起動したい場合は、「Start Docker Desktop when you sign in to your computer」をオンにする。

WSL Integration項目にて、「Enable integration with my default WSL disto」および「Ubuntu」をオンにする。
これにより、UbuntuからDocker Desktopに接続することが出来ます。

疎通が取れているかのテスト
正常に疎通が取れている場合、「docker version」を実行すると、下記のように設定情報が返ってきます。
$ docker version
Client:
Version: xx.x.x
API version: x.xx
Go version: gox.xx.x
Git commit: ********
Built: ************
OS/Arch: linux/amd64
Context: default
Server: Docker Desktop x.x.x ()
Engine:
Version: xx.x.x
API version: x.xx (minimum version x.xx)
Go version: gox.xx.x
Git commit: ********
Built: ************
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: x.x.xx
GitCommit: ************************************
runc:
Version: x.x.x
GitCommit: ****************
docker-init:
Version: x.xx.x
GitCommit: ********
疎通が取れない場合
疎通が取れない場合、「docker version」を実行後、下記のようなアラートが返ってきます。
wsl2ディストリビューションが見つからないので、WSL Integrationで疎通を取ってほしいという旨です。
$ docker version
The command 'docker' could not be found in this WSL 2 distro.
We recommend to activate the WSL integration in Docker Desktop settings.
For details about using Docker Desktop with WSL 2, visit:
https://docs.docker.com/go/wsl2/
その場合、前項手順2の設定に問題があるケースが多いです。
・ Ubuntuディストリビューションを使用する設定が出来ていない
→ WSL Integration設定を確認する。
・ Ubuntuが起動しているが、それに合わせてDocker Desktopが起動していない
→ General設定でPC起動時にDockerが起動するように設定する。
※(それでも解決しない場合は、)WSL Integration設定を一旦オフ→再びオンにする。
これらを行い、筆者環境のDocker DesktopとUbuntuの間では疎通が取れました。
おわりに
WSL2を導入した環境にて、Docker Desktop(for Windows)とUbuntuの疎通を取りました。
気になる改善箇所としては、Docker Desktopの起動タイミングです。
現在Docker Desktopの立ち上げタイミングをPC起動時としていますが、Ubuntu立ち上がり時に起動する方がリソース消費も少なく良いと思います。
(筆者が知見不足なだけかもですが、)Docker Desktopの設定値や「Systemctl」といった手段で、何かしらで実現可能だと思っています。
それでは。
Tags