仮想化4(コンテナ)
1.コンテナとは、仮想化との違い
Linux(OS)カーネルの「コンテナ」機能を利用した分離環境である。プロセッサ、メモリ、ストレージを用意したうえで、OSを実行しなければならない仮想マシンとは違い、一つのOS上で稼働するので、プロセッサやメモリの消費量は少なく、ストレージの使用もわずか。結果として、仮想マシンに比べて起動時間が短く、同じ性能のハードウェアであればより多くのコンテナを同時に動かすことができる。またコンテナ管理ソフトウェアがハードウェアやOSの違いを吸収してくれるので、既にアプリケーションやミドルウェアの稼働が確認されているコンテナであれば、他のサーバに移して動かしても動作は保証される。仮想マシン内のアプリケーションは全て同一のネットワークとなるのに対して、コンテナエンジン上のコンテナはそれぞれ独立したネットワークとしても稼働できる。
2.Docker
DockerとはDocker社によるオープンソースのコンテナエンジン。Docker Hubにユーザが作成したコンテナイメージを自由に公開・共有できる。自身のローカルにないコンテナイメージはここからダウンロード、実行される。
- Docker Hubからのダウンロード → pull
- Docker Hubへのアップロード → push
DockerはLinuxのコンテナ技術を応用しているためWindowsやmacOSで動作させる場合には仮想環境が必要。
- Windows:Hyper-V上にLinuxを作成し、その上でコンテナを構築。win10 pro以上
- macOS:10.10.3(Yosemite)以降に搭載された仮想環境フレームワーク(Hypervisor.framework)上でLinuxを作成、コンテナを構築