Posted at

Windows Subsystem for Linux (Ubuntu)のdockerコマンドからDocker for Windowsに接続する


概要

Windows Subsystem for Linux (WSL)上でdockerホストを動かしても、NTFSファイルシステムにアクセスできません。そこで、WSLからdockerコマンドを実行したいが、dockerホストとしてはWindows上で動作しているDocker for Windowsに接続したい、というような場合の設定方法を記します。

こちらのサイトを参考にしています。

環境は以下の通りです。


  • Windows 10 Pro

  • Ubuntu 18.04 (Microsoft Storeより)


Docker for Windowsのインストール


  • Docker Desktop (Windows)をインストールする


  • [Settings]-[General]で、'Expose daemon on tcp://localhost:2375 without TLS'をチェックする。


  • [Settings]-[Shared Drives]で、dockerホストからアクセスしたいドライブを共有する。



WSLへのdockerのインストール

Ubuntuを管理者(rootでは無く、Windowsの管理者)として実行し、以下の通りdockerをインストールする。

$ sudo apt update

$ sudo apt upgrade
$ sudo apt install docker.io
$ sudo usermod -aG docker $USER


WSLの設定

WSLから、Docker for Windowsに接続するための設定をする。

$ echo "export DOCKER_HOST=tcp://0.0.0.0:2375" >> ~/.bashrc && source ~/.bashrc

WSLのマウントポイントの設定をDocker for Windowsに合わせて、/mntではなく/にする。

$ sudo vi /etc/wsl.conf

[automount]
root = /
options = "metadata"

マシンを再起動して、WSLにて動作確認する。

$ docker info

...
Operating System: Docker for Windows
...