仮想化4(コンテナ)

1.コンテナとは、仮想化との違い
 
Linux(OS)カーネルの「コンテナ」機能を利用した分離環境である。プロセッサ、メモリ、ストレージを用意したうえで、OSを実行しなければならない仮想マシンとは違い、一つのOS上で稼働するので、プロセッサやメモリの消費量は少なく、ストレージの使用もわずか。結果として、仮想マシンに比べて起動時間が短く、同じ性能のハードウェアであればより多くのコンテナを同時に動かすことができる。またコンテナ管理ソフトウェアがハードウェアやOSの違いを吸収してくれるので、既にアプリケーションやミドルウェアの稼働が確認されているコンテナであれば、他のサーバに移して動かしても動作は保証される。仮想マシン内のアプリケーションは全て同一のネットワークとなるのに対して、コンテナエンジン上のコンテナはそれぞれ独立したネットワークとしても稼働できる。

 

2.Docker
 
DockerとはDocker社によるオープンソースのコンテナエンジン。Docker Hubにユーザが作成したコンテナイメージを自由に公開・共有できる。自身のローカルにないコンテナイメージはここからダウンロード、実行される。

  • Docker Hubからのダウンロード → pull
  • Docker Hubへのアップロード  → push

 DockerはLinuxのコンテナ技術を応用しているためWindowsmacOSで動作させる場合には仮想環境が必要。