イメージとはコンテナを作成するための部品をまとめたもの
だと考えてください。
コンテナの中身にある以下のようなもの
- ファイル
- ソフト(ツール)
- 環境の設定
- etc…
つまりは、「コンテナを生成するために必要な部品」を1つにまとめたのが「image」になります。
なので、コンテナ内に入っているファイルの容量が大きく、ソフトが増えたりすると、当然そのコンテナを再現するための部品を詰め込んでいるimageは大きくなっていきます。
実世界ではコンテナに入れた荷物はコンテナのまま運ばれます。
しかし、コンテナは到底人間1人が持って運ぶことはできないほど重量があり、クレーンで動かして船や電車などで運びます。
Dockerの世界のコンテナも同じで、一度コンテナを作ってしまうと運べないことはないが、運ぶのは大変になってしまいます。
なので、現実世界ではできない、デジタルの世界だからできる手法として、「コンテナを構成している部品を状態をある程度維持してまとめ」、それをコピー先の環境で再度コンテナとして組みなおすことで、まったく同じものを再現するという手法がとられています。
では、imageについてまとめて解説を終わりにします
- コンテナはあくまでシステムを外部の環境から切り離して動作させるための箱であり、移動については現実世界でも同じように簡単にはできない
- なので、imageという
同じ状況のコンテナを生成する部品をまとめた
ファイルを使ってコンテナの移動(コピー)や保存を行う
- なので、imageという
- imageを使うことで移動(コピー)や保存をより手軽にできるようになる
- スナップショットとしても使える(コンテナのimage生成時の状態を保存するので、imageを、「コンテナ内で変更がある」前と後で2つ作っておくことで環境を巻き戻すこともできる)
さらに、「イメージ」について理解をしたい方は以下の記事がおすすめです。