「コンテナ」の仕組みやメリット、課題とは?

ユーザー企業のIT担当者を対象に、IT製品/サービスの導入・購買に役立つ情報を提供する無料の会員制メディア「TechTargetジャパン」。このコンテンツでは、技術解説に関する技術解説の記事を紹介します。製品/サービス選定の参考にご覧ください(リンク先のページはPR記事を含みます)。

いまさら聞けないコンテナ&マイクロサービス

 コンテナは、業務をこなすために必要な最低限のリソースのみを配備したアプリケーションロジックのコンポーネントを格納する。仮想マシン(VM)と異なり、コンテナはOSを必要としない。OSリソースはAPI経由で呼び出される。(続きはページの末尾にあります)

コンテナ関連の技術解説

“危ないコンテナ”の条件は? VMとどう使い分ける? コンテナ丸分かりガイド

アプリケーションを稼働させる手段として普及した「コンテナ」。仮想マシンとは何が違い、どのように使い分ければよいのか。コンテナを安全に運用するために注意すべきこととは。コンテナ活用のヒントを紹介する。

(2024/3/29)

Linuxはなぜデータセンターで人気なのか? 「オープンソース」より重要な理由

データセンターの円滑な運用には、サーバのOSの定期的な移行が欠かせない。OSを選定する上で有力な選択肢となるのが「Linux」だ。データセンターでLinuxが広く使われている背景には、何があるのか。

(2022/7/14)

コンテナ実行環境として最適なのはベアメタルか仮想化環境か

コンテナを実行する環境として、ベアメタルと仮想化環境が考えられる。当然ながらどちらにもメリットとデメリットがある。自社が重視すべき要件は何か。

(2021/7/28)

コンテナ移行を阻む課題と解決のヒント

レガシーアプリケーションのコンテナ化にはどのような課題が発生するのか。それを最小限のコストで解決するためのヒントを紹介する。

(2021/5/20)

「Knative」のメリットを“帳消し”にしかねない注意点とは?

「Kubernetes」でイベント駆動型プログラミングを実装するために、「Knative」は良い選択肢になり得るが、注意すべき点も幾つかある。何に注意すべきなのか。

(2020/10/6)

MicrosoftとAlibaba Cloudが立ち上げた「Open Application Model」とは

MicrosoftとAlibaba Cloudが提携し、「Open Application Model」(OAM)を立ち上げた。OAMとは何か。OAMによって何が実現するのか。

(2020/8/6)

コンテナ管理を「AI」で楽にするために必要な手段とは?

コンテナ監視を省力化するために、AI技術を応用することは効果的だ。その際に必要な手段を紹介する。

(2020/5/21)

いまさら聞けない「コンテナ」「オーケストレーター」の仕組みと役割

企業のシステム運用開発における新たな潮流がコンテナだ。コンテナとオーケストレーターの役割を知り、それらにまつわるセキュリティリスクに対処するための備えをしておくことが重要だ。

(2019/6/21)

Dockerと仮想マシンを比較 アプリ開発環境で使うなら?

仮想マシン(VM)とコンテナには技術的に大きな違いがある。コンテナを選ぶ開発者が多いのは、コンテナの方により整合性があると考えているためだ。

(2019/2/5)

仮想マシンとコンテナ 何が違い、どう使い分けるべきか?

コンテナは、マイクロサービスアーキテクチャ、災害復旧、利用密度など、さまざまな点においてメリットがある。コンテナと仮想マシンを適切に使い分けることが重要だ。

(2019/1/22)

いまさら聞けないコンテナの歴史 「chroot」から「Docker」まで

「Docker」や「Kubernetes」の人気で注目を浴びるようになったコンテナ技術。実は仮想マシンに匹敵するほどの長い歴史がある。

(2018/7/26)

開発者にとって「クラウドネイティブ」が意味すること

クラウドネイティブアプリを構築する場合、開発者は演算処理とストレージと分析がどこで行われるかを本質的に理解してコーディングをしなければならない。

(2018/3/14)

オープンソースのコンテナ技術動向、「Docker」の優位はどこまで続く?

2017年、コンテナテクノロジーのエコシステムでは、より良いセキュリティソリューションが誕生し、ベンダー間の競争とCaaS導入の増加が見られるようになるだろう。

(2017/4/10)

コンテナとマイクロサービスの違い

 コンテナ化は、実質的にはOSレベルの仮想化といえる(これに対してVMはハイパーバイザー上で実行され、それぞれフル機能のOSを伴う)。コンテナはパッケージ化が簡単で、軽量かつ実行場所を選ばない。複数のコンテナを1つのVMにデプロイすることもできる。

 マイクロサービスは、例えばネットワークトラフィックのルーティングやオンライン決済、医療結果分析といった単一機能のアプリケーションを指す。その概念は新しいものではなくWebサービスから進化したもので、複数のマイクロサービスを連結してアプリケーションとして機能させるのは、数年前に流行したサービス指向アーキテクチャ(SOA)の進化形だ。

 コンテナとマイクロサービスは同じではない。マイクロサービスはコンテナの中で運用することもあれば、プロビジョニングされたVMとして運用することもある。コンテナはマイクロサービスのために使われるとは限らない。だが、コンテナはマイクロサービス開発とデプロイの優れた手段であり、コンテナ運用のツールとプラットフォームはマイクロサービスベースのアプリケーションを管理する手段として優れている。多くの場合、これらの用語は相互に入れ替えることもできる。

 コンテナは何年も前からUNIXやLinuxに統合されてきた。最近は総合的なサポートのエコシステムが成長してきた。

 これに関わるサプライヤーは数多い。だが「Docker」が市場の中心で主導していることに異論はない。Dockerは、何百万というデベロッパーや数万もの組織がその技術を使っていると説明する。ただ、多くの組織にとってコンテナ化が目新しいものであることを示す統計もある。Dockerの顧客のうち、コンテナを本番環境で運用しているのは40%にとどまる。

 Docker の優位は、必ずしも独占状態にあることを意味しない。むしろそれとは程遠い。コンテナのエコシステム全体を見渡すと、選択肢は豊富に存在する。

オープンソースコンポーネント化

 複数のコンテナはクラスタにデプロイされ、幅広いツールを使って管理される。そうしたコンテナの多くは事前に構築されたコンポーネントとなり、積み重ねてアプリケーションイメージを構成する。主なメリットは、アプリケーションを運用した状態で個々のコンテナを簡単に「上書き」できる点にある。定期的なダウンタイムが減れば、事業継続性が向上する。

 これは「DevOps」の概念の台頭につながってきた。DevOps では、より速いペースで新しいソフトウェア機能を直接 OS 環境にデプロイできる。

 中核的なコンテナ技術の多くはオープンソースであり、VMware のようにかつてはこれを避けていたサプライヤーも引き込まれている。その中心にあるのが 2015 年に発足した「Open Container Initiative」(OCI)だ。OCI は LinuxFoundation の傘下でコンテナ形式とそのランタイム環境に関するオープンな業界標準を策定する。Docker はその土台とするために、自らの形式とランタイムを OCI に提供した。

 コンテナ化されたコンポーネントの多くは「GitHub」「Docker Hub」のようなオープンソースコラボレーションプロジェクトからダウンロードできる。全てのオープンソース技術にいえることだが、市場に進出しているサプライヤーは、安定したバージョンを関連サポートサービスと併せて提供することによって収益を確保している。