概要
Dockerとは、アプリケーションを「コンテナ」という単位で実行するためのプラットフォームです。
アプリ本体だけでなく、ライブラリ・設定・ランタイムなどの依存関係もまとめてパッケージ化できるため、
「どの環境でも同じように動く」ことを実現できます。
コンテナとは
コンテナとは、
- アプリ + 依存関係 + 設定
- 1つの実行可能パッケージ
- どの環境でも同じ動作
という特徴があります。
コンテナはホストOSのカーネルを共有するため、
- 軽量
- 起動が速い
- リソース効率が良い
という利点があります。
仮想マシン(VM)との違い
VM
- ハードウェアを仮想化
- OSごと動かす
- 数GB〜数十GB
- 起動が遅い
Dockerコンテナ
- OSレベルで分離
- OSカーネル共
- 数十MB程度
- 起動が高速
VMは「PCを丸ごと複製」
Dockerは「アプリ実行環境だけ分離」
というイメージです。
Dockerの主要コンポーネント
Image(イメージ)
コンテナを作る設計図
- 読み取り専用
- レイヤー構造
- 再利用可能
Container(コンテナ)
イメージを実行したもの
- 実際にアプリが動く場所
- 起動 / 停止 / 削除できる
Registry
イメージを保存する場所
例:公開リポジトリなど