Linuxコンテナとは | from opensouce.com

法律: IT 解説記事 Linux コンテナ マイクロサービス フノス(訳者)

  Linuxコンテナとは、ホストしているシステムとは別にアプリケーションを動作させる手法の1つである。コンテナ化することでアプリケーションを必要な部分ごとにパッケージがすることができる。
  たとえば、ライブラリとその他依存プログラムは別々のものなのに、運用する時には1つのパッケージとして扱うことができるようになる。また、アプリケーションのコードを開発環境からそのまま持ってくることができるので、開発者とシステム管理者は、混乱のない効率的なアプリケーション制作ができる。

  コンテナは捉え方によっては、仮想マシンのような機能をもち、よく混同される場合がある。
  しかし、仮想マシンはあくまで仮想OSを作り上げるための機構であり、それに対してコンテナは必ずしもOSを作る必要はなく、各コンポーネントの挙動を監視するシステムを載せていればよい。
  これにより、OS分のパフォーマンスが削減され、アプリケーションのサイズも縮小できる。伝統的な仮想化とは異なり、ホストにレイヤーを加えることで、処理はホストに最適化された方式で行われる。これにより管理の手間が大幅に削減される。

  最大の特徴は、「コンテナ」という技術のほとんどがオープンソースなことだ。つまり、様々なコミュニティや貢献団体が、大小さまざまな団体のニーズにこたえるために、日夜開発・改善に取り組んでいるということである。

 コンテナ最大のうまみは?

  最近のコンテナで最も有名なのは、言うまでもなく Dockerだろう。Dockerはコマンドラインツールで、コンテナでの開発や運営を簡単に行える。同じような方式をとっているものに、 Vagrant があり、こちらは仮想マシンの設定を簡単に調整できる。

  Dockerのコマンドラインは、プログラムとしてコンテンツを定義する。バージョン、再生産、共有、修正、などソースコードに手を加えることで、様々な加工ができる。

  コンテナはマイクロサービス・アーキテクチャを駆使する。アプリケーションが複雑化しないようにデザインのパターンを定義して小さくまとめたり、組立可能な要素を一緒に動かしたりする。
  それぞれの構成要素は個別に作成でき、アプリケーションを無駄のない要素のみで作り上げられる。構成要素、あるいはサービスはそれぞれコンテナの内部で動作し、それぞれに必要とされるものを計測できる。
 

 コンテナを編成するには?

  アプリケーションをコンテナに入れても、運営のしかたに大した違いはおこらないだろう。しかし、コンテナを配備、管理する方法には違いがある。

  Kubernetesは、コンテナのクラスターを管理するためのオープンソース・システムだ。アプリケーションの配置、必要とされるリソースの計測、既存アプリケーションの変更管理、コンテナを収容しているハードウェアの使用方法の最適化などの機能がある。拡張性の高い設計で、アプリケーションの構成に誤りがあった場合にはシステムを再起動し、必要とあらばシステムを変更できる。

  AnsibleのようなITオートメーション・ツールや、OpenShiftのようなPlatform as a service(PaaS)は、キャパビリティを追加することで、コンテナを簡単に管理できる。
 

 セキュリティ対策は?

  同じOSに他のアプリケーションがあろうと、コンテナごとにセキュリティ対策をとることができる。
  ただし、アプリケーションを単にコンテナ化しただけでは、セキュリティ面には不十分さがある。
  SElinuxなどの活動で知られる、コンピュータ・セキュリティのエキスパートDan Walshは、Dockerやその他コンテナツールにはコンテナを安全に保つ機能があると述べている。
  確かに基本的ではあるものの、Dockerにはセキュリティ機能がある。

 

 更に詳しく

  興味がある方は次の記事もお読みください。

 

 

 2017-08-11 14:34:24 / Hnoss
原文サイトを表示
[ 原文 ] https://opensource.com/resources/what-are-linux-containers
Creative Commons License この作品は、クリエイティブ・コモンズ・ライセンスの下でライセンスされています。
クリエイティブ・コモンズ・ライセンス