Docker
非常に簡単に言えば、アプリケーションとその実行に必要な環境全体を、「コンテナ」と呼ばれる軽量で独立した箱にまとめてしまう技術
主なポイントは以下の通り
従来の仮想マシン(VM)と違い、OS全体を仮想化するのではなく、OSのカーネルをホストOSと共有します
そのため、非常に軽量で高速に動作し、起動も数秒で済みます。
コンテナは、アプリケーションの実行に必要なコード、ライブラリ、設定などをすべてパッケージ化し、他の環境から隔離されます。
環境の統一と共有
「Dockerイメージ」と呼ばれるコンテナを作成するための設計図(テンプレート)を共有することで、誰でも、どの環境(開発者のPC、テストサーバー、本番サーバーなど)でも、全く同じアプリケーション実行環境を簡単に再現できます これにより、「自分の環境では動いたのに、他の人の環境や本番環境では動かない」といった、環境差によるトラブルを解消できます。
デプロイ(配置)の容易さ
アプリケーションがコンテナという形でパッケージ化されているため、他のサーバーへの移動や配布、スケール(増やしたり減らしたり)が非常に簡単になります
アプリケーション開発や運用を効率化するための強力なツールとして、広く利用されています。