これまでとは異なる仮想化技術Dockerとは?

1台のコンピューターの中で複数のOSを起動する技術はすでに普通に利用されています。

これは、複数のコンピューターのCPU、メモリ、及び記憶用ドライブなどのハードウェアを、仮想的に提供することによってOSのインストールを可能とする、ハードウェアの仮想化技術によって初めて可能となります。

しかし、そのコンピューター自体の処理能力は、仮想化技術によって向上する訳ではありません。

どうしても複数のOSを同時に起動することによって、処理速度が低下することは避けられません。

 

それでも、複数のOSを同時に利用できるメリットは無視することができませんので、もう少し負担の少ない仮想化の方法が強く求められているのが現状です。

そして、そのような必要性から注目を集めている仮想化の技術が「Docker(ドッカー)」です。

まだ、完全対応とは言えませんが、Macintoshの専用OSであるOS X(テン)でも、一定の手順を追加すれば、導入できる環境がそろいつつあるようです。

そもそも、このDockerとは、どのような方法で、負担の少ない仮想化を行っているのでしょうか?

 

Dockerとは?

これまでの仮想化技術では、仮想マシン(VM、バーチャルマシーン)と呼ばれる別のハードウェアを仮想的に構築することで、1台のコンピューターでありながらも複数のカーネルを同時に起動する手法でした。

カーネルとは、OSの中核となる部分であり、基本機能を実現するソフトウェアです。

OSの数に応じて、複数のコンピューターを仮想的に用意して、OSをインストールする方法では、どうしても通常よりも処理すべき情報量が増加してしまいます。

このように、そのハードウェアを追加することで、増加した処理に必要な時間(オーバーヘッド)を減らすには、何とかして、1つのカーネルを、複数のOSで、共有させる必要があります。

それを実現した仮想化技術が「Docker(ドッカー)」です。

 

この仮想化技術は、現在のところ、使用しているOS(ホストOS)がLinuxであるコンピューターでしか動作しません。

また、このDockerが実現できる仮想化環境も、Linux OS(コンテナOS)に限定されています。

ところが、マイクロソフト社は、サーバー用のOSの次期バージョンで、DockerのホストOSとして、Windowsを対応させる予定であることを発表しました。

また、Macintosh用のOSであるOS X(テン)では、VirtualBox(バーチャルボックス)などの仮想化ソフトのインストールによって、Macintoshの中にDockerによる仮想化環境を構築することが可能です。

 

Dockerの現状

ホストOSがLinuxである場合、Dockerが提供している仮想環境において何らかのアプリケーションを起動しても、もともとそのコンピューターを起動する際に利用しているカーネルをそのまま利用することができます。

そのため、別に、カーネルを起動する必要がありません。

すぐに、アプリケーションの起動が可能であり、しかも、そのアプリケーションの起動による負担以外には、基本的に、処理を増加させる要素がありません。

このように、仮想環境で利用するアプリケーションと、それを利用するプロセスに必要なミドルウェアと、ライブラリを一つの単位として、仮想化する技術を「コンテナ型の仮想化」と呼んでいます。

MacintoshのOS Xは、Linux OSではありませんので、仮想化ソフトウェアであるVirtualBoxを利用して、仮想的にLinux環境を構築する必要があります。

そのため、この手法によって実現できるDockerの環境が、必ずしもMacintosh自体の処理に大きな負担をかけない環境である、とは現状では言えません。

今後、Dockerが、完全にOS Xに対応するまでは、このような方法で、実現するしかありません。

 

「コンテナ型の仮想化」に対して、仮想的なハードウェア(CPU、メモリなど)である仮想マシンを構築する手法を「ハイパーバイザー型の仮想化」と呼んでいます。

この「ハイパーバイザー」とは、仮想マシンと、そのコンピューターのCPUなどのハードウェアとの間で、情報処理の制御を行うプログラムです。

Dockerでは、このようなプログラムと、仮想マシンが不要となります。

 

実は、コンピューターに負担をかけない、と言うメリット以外にも、現在のインターネットの利用環境に合致している部分があります。

それは、クラウド環境下でも、開発した新しいシステムを、コンテナ化して、クラウド上の新サービスとして、容易に導入することが可能であるところです。

クラウドサービスを提供している企業の中には、すでにDockerを採用した新しいサービスを開始したところもあるようです。

これは、他の環境で稼働されているシステムを、コンテナ単位で移行できる点などが、クラウドで提供するサービスに相応しいと評価しているためです。

 

Dockerの提供する未来

このように、これから大きく発展することが、ほぼ確実な技術であるDockerですが、実際にMacintoshのようなLinux OS以外のコンピューターで、普通に利用できるようになる日が来るのかは分かりません。

しかし、Macintoshの可能性を更に高める話ではないでしょうか?

すでに紹介したVirtualBoxというアプリケーションは、Linux OSだけではなく、Windows OSのインストールも可能とする、仮想化環境を実現することが可能です。

無料のアプリであるため、メーカーのサポートは期待できませんが、インターネット上で検索すれば複数の情報が取得できます。

利用しているMacintosh1台で、複数のパソコンを所有している場合とほとんど変わらない環境を実現する方法は、探せばまだまだありそうです。