注意
2020年末にWindows Version 20H1 (2004)がリリースされました。Windows10 HomeもWSL2というLinuxを動かすことができるようになり、Windows 10 Proと同様のDockerが導入できるようになりました。
詳細は、下記、リンクをご参照ください。
目標
Windows10 HomeにDockerを導入するために必要な手順と最低限の知識をまとめようと思う。
あと、2018/06/16(日)にWindows10 Homeに Dockerを導入した手順となる。
対象者(ここ重要)
Windows10 Homeの利用者に限ります。しかも64bitしかダメです。
Windows10 Professional、Windows Serverの人は対象にしません。
理由は、Windows10 Pro、Serverは、Windows自身が備える仮想環境(Hyper-V)を使ってDockerが動くためです。しかし、Homeは、Hyper-Vが使えないです。
Windows10 Pro/Serverの利用者で、Dockerを導入したい方は、「windows10 pro docker」のGoogle検索で上位にでてくるので参照されるとよいのではないでしょうか?
Docker Toolboxの導入
Hyper-Vが動かないHomeでは、Hyper-Vの代わりにOracle Virtual Boxを利用する、
Docker Toolboxを利用します。
ダウンロード
https://docs.docker.com/toolbox/overview/ を開きます。
レガシー!? と書いてありますが、気持ち負けたらダメです。
機能的には最新の「Docker for windows」と変わりませんし、
逆に、不具合がなく安定している製品と考えた方がよいです。
気持ち折れずに、ページをするする下の方に行くと、ダウンロードリンクがでてきますのでゲットします。
VirtualBoxも含まれていますので、サイズが211MBと大きいです。気長に待ちます。
インストール
ダウンロードが完了すると、このようなアイコンのファイルができますので、ダブルクリックしてインストールを進めます。
インストールが完了すると、デスクトップ上に以下の3つのアイコンが作成されます。
初期設定
さきほどの3つのアイコンの「Docker Quickstart Terminal」を起動します。
ターミナルが開いて、初期設定が始まります。
Dockerのクジラマークが表示されたら完了です。
動作確認
さきほどのターミナル上で、以下のようにコマンドを打ちます。
docker run hello-world
実際の使い方
この後は、「Lamp」環境を作ったり、「Node.js」の環境を作ったりするためのベースができました。
こちらは割愛します。
ファイル共有の仕方 と 構成の再確認
Dockerコンテナとのファイル共有をしたい場合に、現在の構成を知っておく方がよいので書いておく。
構成
構築されているDocker環境は、以下の図のような構成となっている。
たぶん、この図でわかると思いますが、簡単に説明していきます。
- 一番下の「Windows10 Home(64)」が、普段使っているPCにインストールされているOSになります。
- 下から2番目の「Oracle Virtual Box」が仮想環境を提供します。
- デスクトップに作成された「Oracle VM Virtuabox」というアイコンをクリックすると画面が表示されますが、通常はバックグラウンドで動作をするので目に触れることはありません。
- 「仮想マシン(default)」がDockerの環境を提供するLinuxマシンになります。
- 一番上が「Dockerコンテナ」となります。
「Docker Quickstart Terminal」を起動すると、「Oracle VirtualBox」と「仮想マシン(default)」が順に起動します。
ファイル共有
Dockerが提供するファイル共有というのは、DockerコンテナとホストOS(ここでは仮想マシン(default)になります。
実際にWindows10 上のファイルを共有する場合は、VirtualBoxの機能を使って仮想マシン(default)に提供する必要があるのです。
3階層もあるので少し重たい感じがしますね。
このあたりは、以下記事が参考になります。
停止する
「Docker Quickstart Terminal」を実行すると、Oracle VM と その上のLinuxが動作します。
「Docker Quickstart Terminal」をExitしただけでは、これからはバックグラウンドで動作をし続けます。
これはちょっと嫌だなぁということで、停止の仕方を記載しておきます。
※自分でも久しぶりに動かすと忘れてしまっていた。。。
動いているコンテナがないか確認する
以下は、すべてのコンテナが停止状態なので止められる状態です。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
こちらは、「dc993ecd29ba」が動作している状態です。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dc993ecd29ba ubuntu "bash" 16 seconds ago Up 15 seconds friendly_haibt
動いているコンテナがあれば止めます。
$ docker stop dc993ecd29ba
dc993ecd29ba
仮想マシンを止める。
仮想マシンの状態確認
こんな感じで、「default」という名称の仮想マシンが動作しています。
その上で停止コマンドを実行します。
$ docker-machine.exe ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.100:2376 v18.05.0-ce
$ docker-machine.exe stop
Stopping "default"...
Machine "default" was stopped.
これでOKです。