Help us understand the problem. What is going on with this article?

Windowsユーザが、Dockerを使おうとすると混乱するね。

More than 3 years have passed since last update.

(2016/10/21 追記) 本記事の内容が古くなりましたので、下記のページをお勧めします。

「WindowsのDocker(コンテナ)対応、正しく理解できていますか?」
http://www.atmarkit.co.jp/ait/articles/1610/24/news014.html


DockerのWindows対応が複数存在し、混乱しがちなので、整理してみた。

1. Docker Engine(元祖)

Linux Container on Linux OS

Linux OSは、VMでも物理でもどちらでもOK。もちろんWindows系は非対応。

https://docs.docker.com/engine/understanding-docker/

LinuxOSをコンテナで利用できるが、WindowsOSは一切動かない。

2. Windows Machine上のLinux VMでDocker

Linux Container on Linux VM on Windows Machine

前述1.の応用系。Oracle VM Virtual Boxなどを利用して、Linux VMを用意してDockerを動作させる。

Docker Toolboxはこのパターン(Toolboxをインストールすると、Virtual Boxも同時にインストールされる)

https://docs.docker.com/toolbox/overview/

通常、VM on VMは不可なので、Windows Machine限定(Windows VMには非対応)になる。
 ⇒ AWS EC2上のWindows Server(VM)では実現できない。

LinuxOSをコンテナ利用できるが、WindowsOSをコンテナとして起動する事は出来ない。

3. Docker for Windows

Linux Container on (Hyper-V) on Windows Machine

前述2.の応用で、中間にHyper-Vを利用。

Setup後は、Hyper-Vを意識する必要はなく、Windows上から直接Dockerを操作できる。

https://docs.docker.com/docker-for-windows/

2016/9 現在、Windows 10 のみ対応。今後、対応OSを増やしていく予定とのこと。

こちらも、LinuxOSをコンテナ利用できるが、WindowsOSをコンテナとして起動する事は出来ない。

4. Windows Container on Windows Server

Windows Container on Windows Machine
Windows Container on (Hyper-V) on Windows Machine

Microsoftが Server OSに、Container機能を組み込み。名前の通り、Windowsコンテナしか動かない。
Windows Container Typesが2種(Windows Server Containers, Hyper-V Containers)ある。

https://msdn.microsoft.com/en-us/virtualization/windowscontainers/about/about_overview

2016/9 現在、Windows Server 2016(Technical Preview 5)のみ対応。ちなみにAuzre上に、マシンイメージが公開されてる。

Docker HUBとの相互運用などLinux系に歩み寄っていて、将来的にはLinuxコンテナも動作するようになる(かも?)。

5. まとめ

現状では、WindowsとLinuxの相互運用は厳しい。

Linux/Windowsのどちらのコンテナを使いたいか?で、選択肢が絞り込まれる。

Linuxコンテナを使いたい場合は、2)または3)の構成。

手元にWindows 10のマシンがあるなら、3)Docker for windowsが簡単だろう。

それ以外のOS(Win7など)の場合は、2)のケースで、Linux VMを用意する必要がある(Docker Toolbox使うか、自分でLinux VMを用意)。

なお、VMware Player上のゲストOSでWindows10を用意し、そこで Docker for windowsを動かそうとした猛者がいましたが、動作しなかったとの事例を聞いた(Hyper-VとVMware Playerの共存に難あり?)

Windowsコンテナを使いたい場合は、現状では4)の選択のみ。Windows Server 2016が必要になる。

satotka
横浜の会社で、ITシステム関連のお仕事をさせて頂いてます。 プログラミング、開発プロセス、構成管理、クラウドなどなど、幅広く手を出してます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away