コンテナ

アプリケーション本体と、アプリケーションの実行に必要なライブラリ・依存関係など、必要最小限の要素をひとつにパッケージする
Contributed by

James Allen

Johan Bonneau

Published September 04, 2018
Collection
1

概要

Linuxコンテナは、技術的には、サンドボックス化されたプロセスもしくは仮想マシンベアメタルサーバから隔離されたプロセス群と説明することができます。

これらのプロセスは、Linux Namespacing、CGroups、SELinux contextsなどの試行錯誤を経たメカニズムを使って分離されます。コンテナを想像する良い方法は、アプリケーションやサービスをパッケージ化する方法と考えることです。コンテナには、そのアプリケーションやサービスに必要なファイルやライブラリのみが含まれ、カーネルなどの基礎となるコンポーネントは、各コンテナから共有されます。ファイルとライブラリをパッケージしたものは、コンテナ・イメージとして呼ばれています。

メリット

  • リソース効率 – コンテナにより、複数のコンテナを単一の仮想マシンやベアメタルサーバ上で実行することができ、インフラの利用率が高まります。
  • 可搬性 – イミュータブルなコンテナイメージは、適切なコンテナエンジンがある環境であれば、どのような環境でも実行可能です。これにより、ハイブリッドクラウド戦略が可能になります。
  • スピード – コンテナイメージの起動は非常に速く、ほとんどの場合1秒以下です。従来のシステムの起動に数分かかるのとは対照的です。
  • DevSecOpsを可能にする – イミュータブルなコンテナ・イメージを構築することで、開発者はアプリケーションやサービス固有のコード開発にのみ集中し、セキュリティ・チームがそのイメージをスキャンしてコンプライアンスを確保することができます。そして、アプリケーション固有の知識ではなく、コンテナの実行に関する知識のみを必要とする運用チームがコンテナ・イメージを稼働できるようになり、各チームの責任境界が明確になることで、DevSecOpsの実践が可能になります。

実施方法

実施例

参考

コンテナ をチームや顧客、ステークホルダーと実施するにあたりより詳細にお知りになりたい場合は、以下のリンクを参照してください。


Except where noted, content on this site is licensed under a Creative Commons Attribution 4.0 International license. This site is graciously hosted by Netlify