Docker
Windows10
docker-compose
WSL
docker-for-windows

docker for windowsをWSLから呼び出す


はじめに

これはWSLでdocker-composeを動かす環境を構築するためのメモです。

前回、WSLでLinuxネイティブのDockerを起動させるための記事を書いたが、どうやら現在のWSLではiptablesが完全にサポートされてないそうで、起動することが出来ないそうです。

そのため、再度WSLからdocker-for-windowsのデーモンを呼び出すように設定したのでそのまとめです。


環境


  • Windows 10 Pro version 1809

  • WSL Distribution Ubuntu 18.04.1 LTS (Bionic Beaver)

  • Docker version 18.09.0, build 4d60db4

  • docker-compose version 1.23.2, build 1110ad01

  • Docker for Windows version 2.0.0.0-win81 (29211), build 4271b9e


インストール手順


Docker for Windowsのインストール

まずは公式ページを参考にDocker for Windowsをインストールする。

こちらはインストーラを起動するだけなので簡単ですね。

Get started with Docker for Windows


Docker for Winedowsの設定

次にSettingを開いて一部の設定を行う。


  1. daemonを呼び出すためのポートを許可

    GeneralのExpose daemon on tcp://localhost:2375 without TLSにチェックを入れる。

    無題.png


  2. imageをpullする際のDNSを設定

    NetworkのDNS Server項目のラジオボタンをFixedに変更(IPはそのままで良い)。

    無題2.png



WSLをインストール

Microsoft StoreでUbuntuと検索しインストールします。

自分はUbuntuをインストールしていますが、2019/01/08現在これでインストールされるディストリビューションはUbuntu 18.04LTSです。

自分は他のディストリビューションでは動作を確認していませんが、Ubuntu 16.04LTSでは動作できそうな記事はいくつかあったと思います。


Dockerのインストール

こちらも公式ページのUbuntuに導入する手順に従ってインストールします。

試していないので定かではないですが、自分はDocker for Windowsと同じバージョンをインストールしました。

Get Docker CE for Ubuntu

余談ですが、Ubuntuにはもともdocker.ioというパッケージがインストールされていたりしますが、こちらはUbuntuがメンテしているDockerのパッケージらしいです。

現在公式ではdocker-ceをインストールすることを推奨しているそうです。


Docker for Windowsのdaemonへ接続

WSL上のdockerクライアントからDocker for Windowsのデーモンを呼び出すための設定を行います。

ホーム直下にある.bashrcに定数を追記するため、以下のコマンドを実行します。

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


docker-composeをインストール

最後にdocker-composeをインストールします。

こちらも例に習って公式ページを参考に進めたらOKです。

Install Docker Compose

以上でインストール終了です。

お疲れ様でした。


まとめ

インストール手順をまとめましたが、できれば早くLinuxネイティブのdocker-composeが動いてくれるようになればいいですね。


参考

参考にさせていただいた偉大な先人達のリンクです