はじめに
これは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を開いて一部の設定を行う。
- daemonを呼び出すためのポートを許可
GeneralのExpose daemon on tcp://localhost:2375 without TLSにチェックを入れる。
- imageをpullする際のDNSを設定
NetworkのDNS Server項目のラジオボタンをFixedに変更(IPはそのままで良い)。
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が動いてくれるようになればいいですね。
参考
参考にさせていただいた偉大な先人達のリンクです