14:00様々な局面で活用され、今や開発者にとってなくてはならない存在である仮想化技術。ハードウェアやネットワークなどを仮想的に表現する技術や、仮想化技術を便利に使えるツールなども、次々と開発されています。その中でも、開発者の間でコンテナ型仮想化技術である「Docker」が、最近注目を集めています。本記事では、Dockerの人気を支えている要素「軽さ」「使いやすさ」と、その要素を実現する技術、そしてDockerの要素を活かして実際に活用した事例を紹介します。仮想化技術は利便性が高く、様々なシーンで活用されています。従来の仮想化技術はやはり物理環境と比較すると「起動が遅い」「処理速度が落ちる」といった弊害があり、ユースケースが限られてしまっていることがありました。Dockerは仮想化技術でありながら圧倒的な「軽さ」を実現し、その問題を解決しています。ハードウェア仮想化や物理マシンとの比較を通して、Dockerの「軽さ」を見てみましょう。起動が速いハードウェア仮想化は、CPU、メモリ、ハードディスクなどのハードウェアを仮想化しているため、ハードウェアやOSの起動が必要となり、起動に分単位の時間を要します。一方で、コンテナ型仮想化においては、コンテナ起動時にはOSはすでに起動しており、プロセスの起動のみ行うため、秒単位の時間で完了します。処理が速いOS上のアプリケーションを操作する場合、ハードウェア仮想化においては、仮想化されたハードウェアおよびハイパーバイザーを経由して処理が行われます。この経由している分だけ、通常の物理マシンよりも処理に余分な時間(オーバーヘッド)を要します。一方で、コンテナ型仮想化はカーネルを共有しており、各プロセスが処理を行うのと同じ程度の時間しかかからないため、ほとんどオーバーヘッドがありません。「軽さ」の検証の一貫で、物理マシンと比較してどのくらいのオーバーヘッドがあるのかということを、「sysbench」というベンチマークツールを使って、パフォーマンス計測してみました。今回の計測では、CPU、メモリ、ファイルI/Oの3つの観点で、物理マシン、コンテナ型仮想化(Docker)、ハードウェア仮想化(VirtualBox)の3つを比較しています。結果は次のグラフのようになりました。測ってみた物理マシンとコンテナ型仮想化のパフォーマンスは、全ての項目においてほぼ同等という結果になっています。一方で、ハードウェア仮想化はメモリ、ファイルIOでは約2倍、CPUでは約5倍の時間がかかっています。この結果から、コンテナ型仮想化では、物理マシンと比較しても、パフォーマンスの劣化がほとんどないことが分かります。クラウド運用研究グループにて自社の新サービスである「CCMS」の開発・導入支援を担当。圧縮・解凍UNIX基本講座@CodeZine『CodeZine(コードジン)』の公式アカウントです。【NEW】デブスト2019デブサミ2019福岡・関西デブサミ2019夏デブスト関西デブサミ2019×ログインEメールパスワード※旧SEメンバーシップ会員の方は、同じ登録情報(Eメール&パスワード)でログインいただけます。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。