dockerをWindows10 HomeのWSL (Windows Subsystem for Linux)で動かしてみた

シェアする

ヨメレバCSS

 WSL上でDocker Engineが動くようになっていたっぽいという話

 WindowsのWSLでDockerが動くらしいとの話を見かけたので試してみました。

 やってることはだいたい先の記事にあるだけです。

 結果としてdockerは動いたのですが、ネットワーク周りがだめみたいでdocker-composeは動きませんでした。

スポンサーリンク
GoogleAdSence レクタングル(大)

環境

  • Windows 10 Home
  • Ubuntu 16.04.4  (WSL ストア版)

 また私の環境にはもともとLegasy (Bash On Windows)のUbuntuが入っていて、そちらでもストア版と同じところまでいけました。

Ubuntuを管理者権限で起動する

 dockerを動かすには管理者権限が必要のようです。これが無い場合はサービスが起動しませんでした。

 管理者権限での起動は、スタートメニューの「Ubuntu」を右クリックして「その他 > 管理者として実行」を行います。

dockerをインストール

 apt-getでインストールします。

dockerのサービスが起動しています。

 hello-worldイメージを実行してみます。

やったぜ。

startでは「OK」と出たのにサービスが起動しないとき

 docker startでは「OK」と出ていても、その後のサービスが起動していないときがありました。

 /var/log/docler.logを見てみると、次のエラーがありました。

demsgには次のようにありました。

これが割とよく分からなくて、Dockerサービスが起動しないときで調べていたらUbuntuを再起動しろとあったのでOn Windowsだしなといろいろ察してマシン再起動したら治りました。

docker-composeを実行してみる

 次にdocker-comopseを入れてみます。

 こちらは別のパッケージになっているようなのでインストールから。

 カレントディレクトリに次のようなymlを作ります。とりあえず確認用です。

そして、docker-composeで起動してみます。

 しかし結果は、次のようにエラーとなりました。

 実行されてるiptablesの小窓には問題ないように思えますが、手動で試してみてもダメっぽい。

 調べてみると同じところで引っかかっている方もいました。

wslでdockerが動く

 それでどうも、WSLはWindowsのカーネルを使っているからネットワーク周りなどでまともに動かないコマンドがあるみたいな話もあって。

Running docker compose on windows ubuntu subsystem


The WSL subsystem runs on a Microsoft kernel and not a Linux kernel.
Thus many Linux networking commands do not work, iptables is one of them.

 今のところ、dockerは動くけどネットワーク周りが動かない(のでdocker-composeが使えない)といった感じです。

 あと一歩感がありますわー

参考:

WSL上でDocker Engineが動くようになっていたっぽいという話

docker is running natively on wsl

スポンサーリンク
GoogleAdSence レクタングル(大)