コンテナとは何を分けているのか
仮想化の次によく出てくる言葉が「コンテナ」です。
仮想マシンと似た存在として説明されることも多く、
違いが分かりにくいと感じる人も少なくありません。
結論から言うと、
コンテナとは「OSの上で、処理の実行環境だけを分けて使う仕組み」です。
仮想マシンとの違い
仮想マシンでは、
- ハードウェアを仮想化する
- 仮想マシンごとにOSを持つ
という構造になっています。
一方コンテナでは、
- OSは共有する
- アプリケーションの実行環境だけを分ける
という違いがあります。
コンテナが分けているもの
コンテナが分けているのは、
物理的な機器ではありません。
分けているのは、
- プロセス
- ファイルの見え方
- ネットワークの範囲
といった 実行環境の境界です。
これによって、
同じOS上でも互いに干渉しにくくなります。
なぜコンテナが使われるのか
コンテナが使われる理由は、
- 起動が速い
- 軽量
- 環境差異が少ない
といった点にあります。
「どこでも同じように動く」
という特性が、開発と運用を楽にします。
コンテナは処理を包んでいる
コンテナは、
アプリケーションとその実行に必要なものを、
ひとまとまりにしています。
これにより、
- 環境構築の手間が減る
- 配布や展開が容易になる
という効果が生まれます。
仮想化とコンテナの役割分担
仮想化とコンテナは、
競合する技術ではありません。
- 仮想化
-
環境そのものを分ける
-
コンテナ
- 処理の実行単位を分ける
目的に応じて、
組み合わせて使われることが一般的です。
まとめ
コンテナとは、
- OSを共有したまま実行環境を分ける仕組み
- 軽量で再現性の高い環境を作る考え方
- 現代的なシステム構成を支える要素
です。
この理解があると、
次に学ぶ
「マイクロサービスとは何を解決したのか」
が、より自然につながって見えてきます。


コメント