IT部長さんのための技術トレンド【第5回】
1回で分かる:仮想化とは違うコンテナ技術「Docker」って何?
サーバエンジニアを中心に話題になっているオープンソースのコンテナ管理ソフトウェア「Docker」。従来の仮想化技術とはどう違うのでしょうか。また、システム開発や運用にどのようなメリットをもたらすのでしょうか。
「Docker」は、2013年から2014年にかけて一気に注目が集まっているソフトウェアです。コンテナ型の仮想化技術でシステムを素早く起動/廃棄できるとあって、サーバエンジニアを中心に盛り上がっています。従来の仮想マシンを用いた仮想化と異なり、仮想専用サーバ(VPS)やIaaS(Infrastructure as a Service)インスタンス上にも展開できるため、より自由度の高い仮想化を実現しています。最近では「Google App Engine」がDockerサポートを発表するなど、クラウドベンダーも注目している技術です。
Docker現る
Dockerの初版は2013年3月に米Dockerがリリースしました。同名の「docker」というコマンドでさまざまなLinux環境を一瞬で立ち上げて実行し、廃棄することができます。この手のLinuxコンテナを使った技術としては、UNIXベースでは既に存在し、Linuxでも「chroot」などで実現されてきました。
Dockerが特徴的だったのは、そのコンテナを生成する設定を「Dockerfile」として公開し、また、コンテナイメージを他のユーザーと共有できる仕組みを設けた点にあります。これによって、他のユーザーが作ったソフトウェア構築プロセスをそのまま実行し、自分のDocker環境下でもソフトウェアが労せずインストールできるようになりました。
「GitHub」はソースコードを共有するリポジトリサービスを提供しますが、Dockerはファイルシステムを共有するサービスといえます。
ホストOS型仮想化との違い
Dockerが用いているLinuxコンテナ(LXC)技術も仮想化技術の1つですが、「VMware Fusion」や「VirtualBox」などのホストOS型完全仮想化技術との違いは、OSやネットワーク層を仮想化しないという点にあります。実行プロセスやファイルシステムをコンテナとして囲むことで、ホストOSとコンテナ間のセキュリティを強固にします。ゲストOSからコンテナのファイルシステムを触ることができませんし、コンテナ間においてもファイルシステムやCPUが区別されます。逆に、設定によって指定したディレクトリを共有することもできます。
VMwareなどの仮想マシンを立ち上げる方式の場合、仮想マシンを1つ立ち上げるのに数十秒~数分かかるのが一般的です。しかしDockerの場合、コンテナの起動は一瞬です(初回の実行時にはダウンロードが発生するので時間がかかります)。仮想化に伴うオーバーヘッドが無いため性能劣化もほとんどありません。さらにゲストOSを用意する必要がないのでディスク使用量も少なくて済みます。
一方、欠点としてはホストOSに依存するため、ゲストOSでLinuxカーネルしか選択できない点です。そのため、Windows/Mac OS X版Dockerもありますが、VirtualBox上に「CoreOS」(Docker用の小さなLinuxディストリビューション)をインストールして、それを経由してDockerを利用する形式になっています。
何ができるのか?
Dockerは前述の通り、ファイルシステムを共有することができます。サーバ上で動作するさまざまなソフトウェアをインストールしたDockerイメージを共有し、任意のサーバで同じ環境を再現できるようになります。仮想マシンを必要としないので、複数のDockerイメージを実行してもさほど問題ないでしょう。
また、ゲストOSからホストOSに触ることができないことで、セキュリティ上の安全も担保されます。ゲストOSにインストールしたアプリケーションにセキュリティ上の問題があっても、それがホストOS、他のゲストOSに被害をもたらすことはありません(ポートを解放している、ファイルを共有している場合は別です)。問題のあるゲストOSを落とせばそれで安心です。
サーバを運用していると、バージョンの異なるソフトウェアをインストールしたり、依存するライブラリのバージョンが違うためにインストールできないといった事態が起こります。そうしたときにも、Dockerを使ってあらかじめ環境を切り分けておいたり、新しいソフトウェアはDocker上にインストールすることで、既存環境に影響を及ぼさない運用が可能になります。
Dockerを使ったサービス
Dockerを開発するDocker, Inc.では「Docker Hub」というDockerイメージを共有するサービスを立ち上げています。全ユーザーで共有される公開イメージは無料ですが、自社内だけで使うような非公開イメージを作成・管理する場合は有料になります。
また、「Tutum」「Stackdock」といったDockerを使ったホスティングサービスも立ち上がっています。これらは、IaaSサービスやVPSのホスティングサービスに比べて格安にサーバを利用できます。
日本においては、さくらインターネットが提供する「さくらのクラウド」で、初期起動時のOSとしてCoreOSが選択できるようになっています。この場合、いったんクラウド上にサーバを立ち上げてしまえば、その中で自由に仮想化したコンテナを立ち上げられるようになります。
Dockerが作る未来
Dockerでは、1アプリケーションを1コンテナで運用するのが最もシンプルかと思います。そうすることでアプリケーション同士を疎結合にし、アプリケーションごとのスケーリングを容易にしたり、設計を柔軟にできるようになるでしょう。
またサーバの運用・設計を明確化していくことで、問題が発生した際にロールバックさせたり、ライブラリ更新に伴うエラーチェックなどを容易にできるようになります。サーバ管理者の運用負荷を軽減する上でも欠かせない技術になっていくと思われます。
中津川 篤司(なかつがわ あつし)
MOONGIFT 代表/プロデューサー
オープンソース・ソフトウェアを毎日紹介するブログ「MOONGIFT」、スマートフォン/タブレットのアプリ開発者およびデザイナーを対象にしたメディア「Mobile Touch」を運営。B2B向けECシステム開発、ネット専業広告代理店のシステム担当をへた後、独立。多数のWebサービスの企画・開発およびコンサルティングを行う。2013年にMOONGIFTを法人化し、現在に至る。
Copyright © ITmedia, Inc. All Rights Reserved.
IT部長さんのための技術トレンド
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「データストレージの活用方法」に関するアンケート
-
4
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
-
5
本当に安いPCで十分か? “すぐ重くなる”を防ぐノートPC選びの絶対条件
-
6
Claudeの不可視透かしに批判殺到 著作権消失や誤判定に潜む企業リスク
-
7
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
8
221人調査で分かった「情シス最大のストレス」は?
-
9
LLMの「過学習」、正しく説明している文章はどれ?
-
10
レガシー基幹システムをSAPに統合 山善が突き止めた「標準化と個別最適」の境界線
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー