ITエンジニア日記 ~NO SKILL, NO LIFE~

学んだ技術や、気になることをアウトプットしていきます。プログラミング, インフラ, etc...

コンテナ技術

Dockerの勉強をするにあたり、自分用のメモも兼ねてまとめていきます。

今回は「コンテナ」について。

[目次]

1. コンテナとは

ホストOS上に論理的な区画(コンテナ)を作り、アプリケーションを動作させるのに必要なライブラリやアプリケーションなどを1つにまとめ、アプリケーションの実行環境を構築するもの。

アプリケーションの実行に必要なモジュールをコンテナとしてまとめることができるため、複数のコンテナを組み合わせて一つのアプリケーションを構成することができます。

例えば、Webサーバー・APサーバー・DBサーバーをそれぞれコンテナで構築し、連携させることで一つのWebサービスを構築できる。 f:id:masakiXX0:20191022201500j:plain

2. コンテナと仮想マシン

コンテナと仮想マシンは、隔離されたアプリケーションの実行環境という点では同じ。

仮想マシンは環境ごとにOSを動かさないといけないため、仮想マシンごとにCPUやメモリを消費します。

コンテナは、ホストOS上で稼働するため、CPUやメモリの消費量が少なく済みます。このため仮想マシンに比べ、起動時間も短く、動作も軽量となり、多くのコンテナを同時に実行することが可能です。

f:id:masakiXX0:20191022200053j:plainf:id:masakiXX0:20191022200049j:plain
コンテナと仮想マシン

3. まとめ

今回はコンテナについてまとめました。 次回以降Dockerについてまとめる予定です。

参考

WINGSプロジェクト阿佐志保 「プログラマのためのDocker教科書 第2版」 株式会社翔泳社