Docker 序章 ~Linuxコンテナ編~

まずdockerの使う意味について

開発中はライブラリやファイルの設定をしていますよね?

それでデプロイするときにファイルの修正とかするのめんどくさいから、

開発中からサーバーの環境を再現するためのもの。

 

dockerってどんな技術?

dockerは、Linuxのコンテナ技術を使ったもの。

まずコンテナから。

 

そもそもコンテナとは?

コンテナはよく仮想化と比較される。

1.仮想化

ハイパーバイザーっていうコンピュータを仮想化するためのソフトウェアが

エミュレート(ハードウェア(モニター、ハードディスク)をコピー)して

物理的なマシンの中に、仮想的なコンピュータを作る。

それで複数のOSを単一のシステム上で並列で実行できる。

つまり、一台のmacWindowsだったりLinuxを一緒に実行できるよってこと。

 

2.コンテナ

ではLinuxのコンテナ技術へ

Linuxのコンテナ技術は仮想的なコンピューターを作りません!

ハードウェアまで仮想化しません。

OS上の環境(アプリケーションとか)を仮想化します。だから軽いんです。

細かくいうとカーネルを共有している。

 

だからハードウェアとかは一緒だよって感じ。

 

まとめ

仮想化とコンテナは仮想化させる範囲が違う。

仮想化はコンピューター丸ごと仮想化するけど

コンテナはOS上の環境までしか仮想化させないから軽い。

 

アプリケーションの独立とかカーネルの詳細は触れてません。

また、間違っていることや意見などあればコメントをお願いします。