Docker on WSL

参考

メモ

Docker

WSLでDockerをインストールする手順を示したブログを参考に、geerlingguy/docker を用いてAnsibleでDockerをインストールしてみたが、

ということから、 Dockerのバージョンについての言及 を参考に17系のDockerを無理やりインストールしたところ一応動いた。

まず 管理者権限で WSLを立ち上げる。 つづいて、以下のとおりインストールする。

1
2
$ curl -O https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_17.09.0~ce-0~debian_amd64.deb
$ sudo dpkg -i docker-ce_17.09.0\~ce-0\~debian_amd64.deb

サービスを起動して動作確認。

1
2
$ sudo service docker start
$ sudo docker run hello-world

なお、WSLでDockerをインストールする手順を示したブログ では「管理者権限でWSLを起動する」ことがポイントとあげられていたので、それは守ることにした。 が、インストール後は管理者権限でなくても動いたので、このあたり真偽の確認が必要そうだ。

docker-compose

おおむね docker-composeのインストール手順 のとおりにインストールする。

1
2
$ sudo su - -c "curl -L https://github.com/docker/compose/releases/download/1.6.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose"
$ sudo chmod +x /usr/local/bin/docker-compose

docker-composeの公式ドキュメント の通りためしてみるが、以下のようなエラーが生じた。

1
2
3
4
$ sudo docker-compose up
Creating network "composetest_default" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable NAT rule: (iptables failed: iptables --wait -t nat -I POSTROUTING -s 172.18.0.0/16 ! -o br-3a6517e292d4 -j MASQUERADE: iptables: Invalid argument. Run `dmesg' for more information.
(exit status 1))

WSLがLinuxカーネルではないことに起因しているのだろう可。(iptablesまわりは期待したとおりに動かない?)

共有