Dockerとは何か
・コンテンツ型仮想環境を作成・実行・管理するためのプラットフォーム
・Dockerのソフトウェアを使って素早くコンテナを起動し、様々なアプリケーションを実行することができる
※コンテナとは仮想環境のこと
・異なる環境で簡単に同じ仮想環境を再現できる
・Dockerのソフトウェア自体はGo言語で書かれている。
Dockerのユースケース
・アプリケーションの開発環境
・検証環境、本番環境
・Webサーバ、データベースサーバなどの構築
・各種プログラミング言語の実行環境
・その他さまざまなミドルウェアの環境構築
#Dokerを利用するメリット
・プログラムの実行環境を素早く立ち上げることができる。
⇒ 起動までが数秒程度
・再現性のある環境を用意できる
⇒ PCで開発したプログラムをサーバーで動かす場合も差異が生まれにくく、トラブルになりにくい。
・設定ファイルを共有することでプロジェクトメンバー間で同じ環境を立ち上げることができる。
・PCの環境を汚さずに済む。
⇒ PCのソフトウェアのバージョン管理などを行わなくて済む
ホスト型仮想化とコンテナ型仮想化のメリットとデメリット
・ホスト型は仮想マシンのハードウェアも含めてエミュレートしているため、非常に処理が重く起動や停止も時間がかかる
・コンテナ型仮想化はアプリケーション実行に必要なものだけなため非常に処理が軽量であるため起動や停止に時間がかからない
・ホスト型は仮想マシンの環境の違いによりアプリケーションが動作しなくなることがまれに発生する
・コンテナ型仮想化は特定のアプリケーションを動作させるために必要なものはDockerにまとまっており、同じDockerイメージからコンテナを起動する限り環境が変わっても同様に起動する
・ホスト型は任意のOSを動作させることができるがコンテナ型仮想化はできない。