Windows10のバージョン1809のWSLでDockerが動作する環境を構築した

Windows10のバージョン1809のWSLでDockerが動作する環境を構築した

画面:Windows10のバージョン情報
リリース当初には「データ消失につながる不具合」というOSとしてどうなの?というトラブルを孕んでいたようですが、幸いにもこちらでは不具合に遭遇することなく使えていたため、WSL(Windows Subsystem for Linux)上でDockerの環境を構築した

Windows10のWSLでDockerを動かしてみた 」の時には動作することのなかったUbuntu 18.04でDockerが動作するようになっていました
個人的にはなんでいまさらUbuntu 16.04なのよと思っていたので、今回のWindows10のバージョンはよかった

今回インストールできた環境

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.1 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.1 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

$ docker version
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.4
 Git commit:        e68fc7a
 Built:             Fri Oct 19 19:43:14 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.4
  Git commit:       e68fc7a
  Built:            Thu Sep 27 02:39:50 2018
  OS/Arch:          linux/amd64
  Experimental:     false

作業メモ

1.WSL(Windows Subsystem For Linux)を使うための設定をする

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

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

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

画面:Microsoft Storeから「Ubuntu 18.04」をインストールする
画面:Microsoft Storeから「Ubuntu 18.04」をインストールした

3.WSL環境を「管理者として実行」して、Dockerをインストールする

画面:WSL環境を「管理者として実行」する
$ sudo apt update && sudo apt -y upgrade

$ sudo apt install -y docker.io

$ sudo cgroupfs-mount

$ sudo usermod -aG docker $USER

4.Dockerを起動するシェルスクリプトを書く

$ cat Docker.sh
#!/bin/sh
 pass='password1!'
 echo "$pass" | sudo -S cgroupfs-mount && sudo service docker start
 sleep 15
 docker version
$ chmod 700 Docker.sh

5.WSL環境を「管理者として実行」して、Dockerを起動する

画面:WSL環境を「管理者として実行」する
$ ./Docker.sh

「管理者として実行」でWSL環境を起動しておかないと

$ docker version
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.4
 Git commit:        e68fc7a
 Built:             Fri Oct 19 19:43:14 2018
 OS/Arch:           linux/amd64
 Experimental:      false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

となってしまう