電子書籍の厳選無料作品が豊富!

DockerとVertualboxの違いを
実例を交えながら、教えてください!

A 回答 (1件)

まずWikipediaの記述を紹介。


https://ja.wikipedia.org/wiki/Docker
> Dockerは、コンテナと呼ばれるOSレベルの仮想化環境を提供するオープンソースソフトウェアである。VMware製品などの完全仮想化を行うハイパーバイザ型製品と比べて、ディスク使用量は少なく、仮想環境 (インスタンス) 作成や起動は速く、性能劣化がほとんどないという利点を持つ。

上には記載がないけど、VirtualBoxはVMware製品などと同様に完全仮想化を行う製品です。Windows10Proなどに搭載されているHyper-Vも同じく完全仮想化ソフトです。
先に完全仮想化ソフトを説明する方が簡単ですね。これらの完全仮想化ソフトはパソコン自体を模擬する仮想マシンを作り出します。この上で動くゲストはOSを含めて全てが完全仮想化ソフトが作る仮想マシン上で動作するわけです。なのでWindows上のVirtualBoxの中でLinuxを動かしたりということが可能になります。
この仮想化は、ゲストOSのカーネルが通常CPUのハイパーバイザモードで動くところをユーザーモードで動かして特権命令をトラップして仮想化ソフトで模擬動作させたり、ゲストOSカーネルの一部をメモリロード時に書き換えたりして実現しています。

対してDockerはOSレベルの仮想化環境を提供するということで、Docker上のプログラムは他のプログラムと同じくホストOS上のプロセスとして動いています。ディスクのルートパスとかのプログラムから見える環境を操作して別の環境で動いているように見せかけているだけです。
なので本来Linux上のDockerではLinux仮想環境のみ、Windows上のDockerではWindowsの仮想環境のみしか提供できません。Windows上のDockerでLinux環境を提供しているのは実はVirtualBoxないしHyper-V上でLinux仮想環境用のLinux仮想マシンを走らせているのです。
なおDockerは仮想化環境の提供でなく、コンテナの構成ステップをファイル化して再構築を容易にしている部分が要点ではないかと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!