WindowsやMacでDockerアプリを利用すると裏でVMが動く
まずは前提知識。
DockerはWindows、Mac、LinuxなどOSを選ばず使えるコンテナ管理ツールのこと。
マシンとコンテナの構成を下の図に表す。仮想化技術と違い、コンテナ内にハードウェアは実装されていない。コンテナ内のOSはマシンのOSを利用するためOSが違うと、コンテナは動作しない。また、コンテナ内のOSはLinuxであることが多い。
ここからが本題。WindowsやMacでLinuxのコンテナを扱う場合、実はDockerは裏でVMを動かしている。その構成図を下に示す。ちなみに、LinuxでLinuxのコンテナを合う使う場合は上記の構成図通りで問題ない。
赤枠で囲んでいる部分は、先ほど載せた構成図になっている。この構成にすることでコンテナ内のOSとVMのOSが同じになるため、問題なく動く。Dockerは便利なので、WindowsやMacで利用するときは、この構成を特に気にしなくても操作できるようになっている。
ここからは余談。
WindowsやMacで利用できるDockerアプリは以下の3種類。
Docker Desktop for Windows
Docker Desktop for Mac
Docker Toolbox
それぞれ、裏で動いているVMは以下のようになっている。
Docker Desktop for Windows -> Hyper-V
Docker Desktop for Mac -> xhyve
Docker Toolbox -> Virtual Box
導入するときは、どのVMが動くマシンなのか確認してからDockerアプリを選ぶ。