編集部からのお知らせ
PDF Report at ZDNet:「ドローン活用」
「ニューノーマル」に関する新着記事一覧
古賀政純「Dockerがもたらすビジネス変革」

HPEの開発部門が着目した特性--Dockerイメージのサイズ - (page 2)

古賀政純(日本ヒューレットパッカード)

2018-02-21 07:30

Dockerイメージのサイズの肥大化

 Dockerイメージは、仮想化ソフトウェアにおけるゲストOSに比べてストレージの容量を節約できるという点を挙げましたが、ストレージの消費量に注意が必要な場合が存在します。例えば、事業が劇的に増えたことによって開発すべきモジュールが増え、Dockerイメージの数そのものが従来に比べて膨大になるといった場合や、Dockerコンテナを仮想化基盤におけるゲストOSのような一般的なデスクトップOS環境(大量のアプリケーションが同時に稼働するOS環境)のように利用する場合は、いくらDockerイメージのサイズが小さいとはいえ、ストレージの消費量に注意が必要です。

 このため、Dockerイメージの肥大化を防ぐためにも、Dockerイメージは、極力コンパクトにし、1つのDockerコンテナ内で稼働させるアプリケーションの数も極力少なくする努力が必要です。

 1つのコンテナで稼働させるアプリケーションの数を少なくすれば、Dockerコンテナを部品化し、部品化したコンテナを組み合わせてサービスを作ることで、別のサービスへの「使いまわし」が効くようになります。Docker社は、「1つのコンテナに1つのサービス」を推奨しています。これは、Dockerコンテナによるマイクロサービス化を意味しています。マイクロサービス化は、アプリケーションの「部品化」ですが、それらの部品(すなわち、Dockerコンテナ)を組み合わせたサービスの実現には、Dockerコンテナの元となるDockerイメージのスリム化も重要です。

Dockerコンテナの部品化
Dockerコンテナの部品化

Alpine Linux

 HPEのDocker導入事例の話から少し逸れますが、最近では、非常にサイズの小さいLinux OSである「Alpine Linux」(アルパイン・リナックス)が注目されています。Alpine Linuxは、通常のOSのCD-ROMイメージとしても入手でき、サーバやパソコンに普通にインストールできるOSですが、Dockerイメージも提供されています。Alpine LinuxのDockerイメージは、なんと数メガバイト程度しかありません。必要最低限のOSテンプレートイメージですが、一般的なLinuxのコマンドライン環境を利用でき、Dockerコンテナ内に開発環境やアプリケーションなどを追加したとしても、従来のDockerイメージに比べて、圧倒的にサイズを小さくすることができます。Dockerイメージに含まれるソフトウェアコンポーネントが少なく、サイズが小さいというのは、IT基盤の運用部門や開発部門からすれば、Dockerイメージの可搬性の観点でも、非常に魅力的です。

 近年は、非常にサイズの小さい軽量OSという特徴から、Docker環境だけでなく、計算能力の非力なIoT機器で稼働するOSとしても注目されています。

Alpine LinuxのDockerイメージのサイズが非常に小さい理由

 すこし技術的な話になりますが、Alpine LinuxのDockerイメージのサイズは、数メガバイト程度と、非常に小さいにもかかわらず、一般的なLinux OSのコマンド群の多くをサポートしています。通常、Linux OSには、大量のコマンド群が用意されており、それらのコマンドは、別々のバイナリファイルです。しかし、Alpine Linuxに含まれるLinux OSのコマンド群は、busyboxと呼ばれる単一の実行ファイルとその他数個程度の実行ファイルとライブラリで構成されています。そのため、Alpine Linuxは、一般的なLinux OSと比べて、バイナリファイルの数を劇的に減らすことに成功しています。

 今回のDocker導入事例で紹介している「HPE OneView」の開発基盤では、Alpine Linuxではなく、Red Hat Enterprise Linux(RHEL)とCentOSと呼ぶLinux OSを利用していますが、それでも1つのDockerイメージは200メガバイト程度です。開発環境を含めても数百メガバイト程度で収まる場合がほとんどですので、従来の仮想化基盤のゲストOSのイメージファイルに比べると非常にサイズが小さくて済みます。

 HPEでは、HPE OneViewのようなエンタープライズアプリケーションの開発環境にAlpine LinuxのDockerコンテナを使用するには至っていませんが、筆者の個人的な見解として、Alpine Linuxは、性能が限定的なIoT機器で直接稼働するOSや、IoT機器で稼働させるDockerコンテナの元となるDockerイメージ、サービスプロバイダーなどのウェブフロントエンド、マイクロサービスが稼働するための軽量OSとして有望ではないかと考えています。


Alpine Linux

 次回は、HPEの開発部門が利用しているDockerイメージの管理の仕組みについてご紹介します。

古賀政純
日本ヒューレットパッカード オープンソース・Linuxテクノロジーエバンジェリスト
兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバのSE及びスーパーコンピュータの並列計算プログラミング講師、SIを経験。2006年、米国ヒューレットパッカードからLinux技術の伝道師として「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。プリセールスMVPを4度受賞。現在は、日本ヒューレットパッカードにて、Linux、FreeBSD、Hadoop、Dockerなどのサーバ基盤のプリセールスSE、文書執筆を担当。Red Hat Certified Virtualization Administrator、Novell Certified Linux Professional、Red Hat Certified System Administrator in Red Hat OpenStack、Cloudera Certified Administrator for Apache Hadoopなどの技術者認定資格を保有。著書に「Mesos実践ガイド」「Docker実践ガイド」「OpenStack 実践ガイド」「CentOS 7実践ガイド」「Ubuntu Server実践入門」などがある。趣味はレーシングカートとビリヤード。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

特集

CIO

モバイル

セキュリティ

スペシャル

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]