Windows10のWSLでDockerを動かしてみた

Windowsで

とやってきましたが、いまいちしっくりこなかったのと、Windows10のWSL(Windows Subsystem for Linux)上でDockerが動くらしいとの記事をちらほら見かけるようになったので、やってみた時のメモ

Windows10でWSLを使えるようにするための設定をしておく

PowerShellを管理者として実行する

スタート(田)から「Windows PowerShell」の「Windows PowerShell」を右クリック、「タスク」の「管理者として実行する」を選択する

> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Microsoft Storeから「Ubuntu 16.04」をインストールする

Microsoft Storeには「Ubuntu 18.04」、「Ubuntu 16.04」とあるのですが、こちらの環境では「Ubuntu 16.04」でしかDockerは動かせませんでした

  • Microsoft Storeで「ubuntu」で検索して
    画面:Microsoft Storeで「ubuntu」で検索して

  • 「Ubuntu 16.04」で選択して
    画面:Microsoft Storeで「ubuntu」で検索して

  • [入手]ボタンをクリックする
    画面:Microsoft Storeで「ubuntu」で検索して

「Ubuntu 16.04」を管理者として実行する

スタート(田)から「Ubuntu 16.04」を右クリック、「その他」の「管理者として実行」を選択する

「Ubuntu 16.04」のコンソールでDockerをインストールする

以降は「Ubuntu 16.04」のコンソール内での作業です

  • 初回起動時はユーザー名とパスワードを設定する
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: administrator
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
  • Dockerをインストールする
$ sudo apt update && sudo apt -y upgrade

$ sudo apt install -y docker.io

$ sudo cgroupfs-mount

$ sudo usermod -aG docker $USER

$ sudo service docker start

$ docker version
Client:
 Version:      17.03.2-ce
 API version:  1.27
 Go version:   go1.6.2
 Git commit:   f5ec1e2
 Built:        Thu Jul  5 23:07:48 2018
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.2-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.6.2
 Git commit:   f5ec1e2
 Built:        Thu Jul  5 23:07:48 2018
 OS/Arch:      linux/amd64
 Experimental: false

インストール後の実行は?

スタート(田)から「Ubuntu 16.04」を右クリック、「その他」の「管理者として実行」を選択する

$ sudo cgroupfs-mount && sudo service docker start

調子が悪いときは?

WSL環境自体はスタート(田)から「Ubuntu 16.04」を右クリック、「その他」の「アプリの設定」で終了させることができる
ただいろいろやってみるより、さくっとPCを再起動した後にやり直した方がうまくいくケースが多いようでした

まとめ

  • まだ不安定だったり、正しく動作しないコンテナがあったり、使っている途中で調子が悪くなることも多いが、使い勝手は一番しっくりきました
  • 例えばaptコマンドを実行するだけでも(他の環境下では出ない)ワーニングが出ることが多いようです
  • ただ外部ボリュームとの連携のやりやすさは一番な気がします(例えばDocker環境外からのファイルの変更検知もきちんとされている)
  • またWSLはWindows10 Homeでも動作する、WSL外の環境を汚さない(Docker Toolbox on WindowsはインストールするとWindows環境にOracle VertualBoxがインストールされてしまう)という点で、これからも熟成されていって欲しいです