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

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

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30