2023.04.13

コンテナ - DevOps用語集 2023年版

日本仮想化技術株式会社
このエントリーをはてなブックマークに追加

はじめに 

本記事では日本仮想化技術がDevOpsに関連する用語解説をわかりやすくお伝えいたします。今回は「コンテナ」について解説していきたいと思います。 

本論1 

コンテナは仮想化技術の一種で、主にアプリケーションを独立した空間で実行するために用いられています。具体的には単一のOS上で、Webアプリケーションサーバーを複数動作させるといった目的に向いています。 

コンテナは、OS上で動作しているプロセスを独立した空間に隔離し、個別のファイルシステムやIPアドレス、名前空間を持たせる事で、各コンテナが独立したOS上で動作しているように見せかけます。ファイルシステムは、コンテナイメージとして用意され、コンテナ実行時にマウントされます。コンテナイメージは読み取り専用で扱われるため、コンテナは起動する毎にクリーンな状態で動作します。ひとつのイメージから複数のコンテナを起動することができるため、同じアプリを用途別に、複数動作させることもできます。 

コンテナと物理/仮想マシンの違いは、主にOSカーネルの扱いとなります。物理マシン上では、インストールされたOSの核としてOSカーネルが動作しています。このOSカーネルがコンピューターのリソース管理やプロセス管理を行います。仮想マシンの場合は、ハイパーバイザーが仮想的なハードウェア機能を提供しているという違いはあるものの、その上ではカーネルを含むフル機能のOSが動いているという点では同じです。一方コンテナでは、ホストOSのカーネルを共有しています。またコンテナは、特定のプロセスを動作させるために必要なデータのみが含まれるため、仮想マシンと比較して、イメージも非常に軽量になります。 

前述のような、特定のプロセスのみを動かすコンテナをアプリケーションコンテナと呼びます。それに対し、フル機能のOSが動作しているコンテナも存在します。これをシステムコンテナと呼びます。システムコンテナは、カーネルこそホストOSと共有するものの、それ以外の様々なOSの機能がコンテナ内で動作しています。具体的にはコンテナ内でもinitデーモンが起動し、ログインプロンプトも表示されます。そのためシステムコンテナは軽量な仮想マシンのように扱え、アプリケーションコンテナと比較して、非常に自由度が高いコンテナです。 

13用語集コンテナ.png

関連リンク(任意) 

かんたんDevOps | 日本仮想化技術株式会社 
https://virtualtech.jp/devops/ 

とことんDevOps  | DevOpsに取り組みたい皆さんのための技術情報メディア 
https://devops-blog.virtualtech.jp/ 

この記事の著者:日本仮想化技術株式会社

日本仮想化技術はベンダーニュートラルな独立系仮想化技術のエキスパート集団です。日本仮想化技術ではこれからDevOpsを始めたいと考えるプロジェクトに対して、DevOpsの導入、実践を支援する「DevOpsサポートサービス」というサービスを提供しています。


DevOps Hubのアカウントをフォローして
更新情報を受け取る

  • Like on Feedly
    follow us in feedly

関連記事

このエントリーをはてなブックマークに追加

お問い合わせ

DevOpsに関することなら
お気軽にご相談ください。

Facebook、TwitterでDevOpsに関する
情報配信を行っています。