つい先日まで、Windows10 HomeではHyper-Vを有効にできずにDocker for Windowsをインストールできないので、Dockerが使えないものだと思っていたが、そうではないことがわかった。
ただし、Docker Composeはのネットワーク関係?がうまく動いていないらしいが本記事では未確認です。(2018/7/15時点)
Contents
環境
Windows 10 Home
WSL(Ubuntu 16.04)
大まかな手順
- Microsoft StoreでUbuntuを入手
- WSLを有効化
- Dockerをインストール
- マシン(WSL)再起動
- hello world
上記手順の1と2はWSLを有効にする内容を別記事にしたので、そちらをご参照ください。
Windows10でWSLを有効化したお話
参考にさせていただいたサイト
http://www.nuits.jp/entry/docker-on-wsl
こちらの記事ではWin10 Proを使っているようだったので、Win10 Homeで試してみた感じです。
Dockerをインストール
Ubuntu(WSL)を起動する際は管理者権限で実行してください。
以下のコマンドを順に実行。
sudo apt -y update && sudo apt -y upgrade sudo apt install -y docker.io sudo cgroupfs-mount sudo usermod -aG docker $USER sudo service docker start
3つ目のコマンド「sudo cgroupfs-mount」が必ず必要だそうです。
が、何をするコマンドかはまだわかっていません。
この時点でdocker runをすると必要なファイルを誰かのプロセスが掴んでいるようなエラーが出るそうです。
私も同じエラーが出ました。
そのためWSLを再起動する必要があるらしい。
WSLだけの再起動の仕方がわからなかったので、マシンを再起動しました。
再起動後、Ubuntu 16.04を立ち上げて、以下のコマンドを実施。
sudo cgroupfs-mount sudo service docker start docker run --rm hello-world
これでWindows10でHyper-Vを使わなくてもDockerが使えるようになります!
Windowsでも快適なDocker生活を!
ちなみに、これでWindowsでLinuxのコマンドが叩けるようになるわけですが、
Cドライブの直下ってどこにあるんだろうと思って探すと以下のパスにありました。
/mnt/C/
改善活動
人様のブログを参考にしただけでは面白くないので、少しだけ改善活動。
以下のコマンドはどうも毎回やらないといけないそうです。
sudo cgroupfs-mount
sudo service docker start
めんどくさいのでホームディレクトリに以下のshell scriptを作成します。
vi startDocker.sh sudo cgroupfs-mount && sudo service docker start chmod +x startDocker.sh
~/.bashrcで実行するようにしておけば完璧。
と、思ったのですが起動時に実行するパスワード求められるのか。
まぁそれはしょうがないよなぁ…。