コンテナイメージ
チームで、CIのチェック用の道具のバージョンを上げることになり、動いているコンテナの中で直接入れ直そうとしたら
コンテナイメージは、コンテナを作るための「ひな型」です。
動くのに必要なものがまとめて入っていて、1つのイメージから同じ中身のコンテナをいくつでも作れます。イメージの作り方は Dockerfile というファイルに書き、それをもとにイメージを作ることを「ビルド」といいます。
- コンテナイメージは、コンテナを作るための「ひな型」
- 作り方を Dockerfile というファイルに書き、ビルド(docker build)してイメージを作る
- 1つのイメージから、同じ中身のコンテナをいくつでも起動できる
- イメージはレジストリ(Docker Hub や各クラウドのレジストリ)に置いて共有する
身近な例えで理解する
会社で新しいパソコンを何台も配るとき、担当者は、必要なソフトと設定を入れた「マスター」を作り、それを写して同じパソコンを何台も用意します。
- 用意するソフトや設定の手順書Dockerfile
- マスターを作るビルド
- マスターコンテナイメージ
- マスターを写して配ったパソコンコンテナ
配ったあと1台だけ設定を変えても、マスターは変わりません。全部のパソコンをそろえて変えたいときは、マスターを作り直します。
ちょっと確認
チェック用の道具を入れたコンテナを、CIでも使えるようにするまでの順番に並べてください。
下のカードを、正しい順にタップしてください。
例えを外して、実際のしくみ
Dockerfile
ビルド
Dockerfile をもとにイメージを作ることです。Docker では docker build を使います。イメージは、変更を重ねた層(レイヤー)でできています
イメージは変わらない
一度作ったイメージは書き換えられません。動いているコンテナの中で直したことは、そのコンテナにしか残らず、同じイメージから新しく作ったコンテナには入っていません。変えたいときは、Dockerfile を直してビルドし直します。作り直したイメージは新しい別のイメージで、同じ名前(タグ。例:latest)をつけると、その名前が新しいほうを指すようになります。名前が同じでも中身が同じとは限りません
このページのまとめ
- コンテナイメージ
- コンテナを作るためのひな型。必要なものがまとめて入っている
- Dockerfile
- イメージの作り方を書いたファイル
- ビルド
- Dockerfile をもとにイメージを作ること
- レジストリ
- イメージを置いて共有する場所
先輩のひとことの意味
先輩「中で直さないで、Dockerfileを直してイメージをビルドして」
「動いているコンテナの中で直しても、そのコンテナにしか残らないし、ほかの人にも伝わらない。作り方の Dockerfile を直してイメージを作り直せば、そのイメージから作るコンテナは全部そろうし、変更もGitに残る」という意味です。
練習問題で確かめる
では、道具のバージョンを上げるにはどうする?
Dockerfile に書いてはいけないものは?
参考資料
ご意見・「これで例えて!」を募集しています
ご意見・ご感想・質問・間違いのご指摘など、何でもお気軽にお寄せください。「この言葉も例えで説明してほしい」「こんな例えなら分かりやすい」という声をもとに、新しいページや例えを作ります。
- 説明してほしいITの言葉
- 例えてほしい場面(部活・アルバイト・家事など)
- 分かりにくかったところ・間違いのご指摘
意見箱は準備中です。