Dockerを知る -周辺ツールと業界動向- 1

Dockerが注目されている理由を探る

DockerとはDockerとは、Docker社が開発しているオープンソースのコンテナ型仮想化ソフトウェアである。Linux上でLXC(Linux Container)の技術を活用し、コンテナ型の仮想環境を作成するものだ。Dockerの主な特徴は、以下の通りである。コンテナはカーネル部分をベースのO

佐藤 司, 森元 敏雄

2014年12月2日 20:21

Dockerとは

Dockerとは、Docker社が開発しているオープンソースのコンテナ型仮想化ソフトウェアである。Linux上でLXC(Linux Container)の技術を活用し、コンテナ型の仮想環境を作成するものだ。

Dockerの主な特徴は、以下の通りである。

  1. コンテナはカーネル部分をベースのOSと一部共有するため、リソース使用量が非常に少ない
  2. Docker社が用意しているリポジトリ(DockerHub)に、構築済みのコンテナイメージがあるので、構築作業が不要
  3. コンテナの作成からプロダクトのインストール・設定するまでの手順を、“Dockerfile”というテキストファイルに定義できる(インフラのコード化)。このDockerfileを用いることで、Dockerが導入されている環境であればどこであっても、準備した環境を稼働させられるため携帯性が高くなる。

これらの特徴からDocker環境では一台のサーバで多数のコンテナを同時に実行したり、実行していたコンテナを別環境で稼働させたりすることが可能だ。

サーバ仮想化方式ごとの特徴比較

コンテナ型の仮想化と、ハイパーバイザ型やホスト型の仮想化とは、どのような点が異なるのだろうか。まずは仮想化の方式の違いから見ていこう。

表1:仮想化方式の違い

コンテナ型仮想化
(Docker)
ハイパーバイザ型仮想化
(VMWare ESXi)
ホスト型仮想化
(Linux KVM)
仮想マシン OS部分を一部ホストOSと共有するため、VMごとにOSインストールをする必要はない VMごとにOSをインストールする必要がある VMごとにOSをインストールする必要がある
稼働OSの種類 Linuxのみ稼働可能
Windowsは現状稼働しない
Windows、Linux、一部のUnixも稼働可能 Windows、Linux、一部のUnixも稼働可能
利用開始までの時間 OSインストール不要のため、利用開始までの時間が短い 初回構築時にはネットワーク・OSインストール等の作業が発生するため、利用開始までの時間が長い 初回構築時にはネットワーク・OSインストール等の作業が発生するため、利用開始までの時間が長い
ネットワーク 標準では、ホスト側に作成されたDocker専用のNICとしか通信出来ない ネットワークの作成が可能で、VMにも任意の数のvNICを付与可能 ネットワークの作成が可能で、VMにも任意の数のvNICを付与可能
リソース 標準ではHDDリソースの指定が出来ない。CPU、メモリについてはリソース割り当て上限を指定可能 CPU、メモリ、HDDのリソースについて割り当てを指定する必要がある CPU、メモリ、HDDのリソースについて割り当てを指定する必要がある
オーバーヘッド コンテナはホストOSから見ると単一のプロセスであり、オーバーヘッドはほぼない VMから機器までのアクセス経路がハイパーバイザのみなので、ホスト型仮想化に比べるとオーバーヘッドは少ない VMから機器までのアクセス経路が他の仮想化技術に比べ長いため、比較した場合には一番オーバーヘッドが大きくなる

各方式の特徴は、以下の通りだ。

コンテナ型仮想化

コンテナ型仮想化は、ホストOS上でコンテナプロセスが実行されており、その上にコンテナが立ち上がってアプリケーションが実行される。他の方式との相違点として、コンテナはホストOSから見ると一つのプロセスとして認識されている点が挙げられる。またコンテナは、ホストOSのカーネル部分を共有するため、各コンテナにはOSは導入されていない。

ハイパーバイザ型仮想化

ハイパーバイザ型仮想化は、独自の仮想化管理ソフトであるハイパーバイザをサーバへ直接導入し、サーバ全体を仮想化に利用する。仮想環境上のアプリケーションからサーバまでの経路がホスト型仮想化製品よりも短いため、高いレスポンスが得られる。立ち上げられるVM数は、コンテナと比較すると少なくなる。

ホスト型仮想化

ホスト型仮想化は、ホストOS上で仮想化ソフトを実行させ、その上にゲストOSを稼働させる。ここで取り上げる3種の仮想化の中では一番オーバーヘッドが高くなる傾向にあるが、ホストOS上で直接実行しているアプリと並行利用できるため、個人環境での利用に人気がある。

各サーバ仮想化の実装方式を図で表すと、以下のようになる。図中の緑色の範囲が、仮想化の範囲である。

サーバ仮想化の実装方式(クリックで拡大)

この記事のキーワード

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る