【こんてなれじすとり】

コンテナレジストリ とは?

💡 コンテナイメージを保管する「アプリの倉庫」
📌 このページのポイント
ビルド Dockerfile docker push コンテナレジストリ app:v1.0 app:v2.0 app:latest db:v3.1 docker pull サーバー デプロイ Kubernetes クラスタ 全体フロー ビルド push 保存 pull 配布 run デプロイ
コンテナレジストリの役割
ひよこ ひよこ

コンテナレジストリって必要なの?

ペンギン先生 ペンギン先生

自分のPCでDockerイメージをビルドしても、そのイメージは自分のPCにしかない。サーバーで動かすにはサーバーに届ける必要がある。レジストリはその中間地点で、「PCからプッシュして、サーバーからプルする」という流れを実現するんだよ。

ひよこ ひよこ

Docker Hubって無料で使えるの?

ペンギン先生 ペンギン先生

公開イメージは無料で、無制限に使える。プライベートリポジトリ(非公開イメージ)は無料枠に制限があって、チームで使うなら有料プランかAmazon ECRなどのクラウド提供のレジストリを使うことが多いよ。

ひよこ ひよこ

イメージのタグって何のためにあるの?

ペンギン先生 ペンギン先生

バージョン管理のためだよ。「myapp:latest」「myapp:v1.2.3」みたいにタグをつけて区別する。「latest」は最新版を指す慣習的なタグで、バージョンを固定したいなら「v1.2.3」のような具体的なタグを指定するのが安全だよ。

ひよこ ひよこ

コンテナレジストリのイメージスキャンって何をチェックしてるの?

ペンギン先生 ペンギン先生

イメージに含まれるOSのパッケージやライブラリに「既知の脆弱性CVE)」がないかをスキャンしてくれる機能だよ。Amazon ECRやGitHub Container Registryに搭載されている。ベースイメージ(例えばubuntu:22.04)にセキュリティパッチが当たっていない古いバージョンが使われていたり、インストールしたライブラリ脆弱性があったりするのを検出できる。ただし「CVEが報告されているが実際には使っていないコードパス」でもアラートが出るため、全部対応しようとするとキリがない、というのも現実の悩みなんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「コンテナレジストリ」って出てきたら「Dockerイメージを保管・共有するための倉庫サービスのことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Container Registry」 = コンテナのレジストリ(登録場所・保管庫)
💬 Registryは図書館の「目録」「登録所」の意味。イメージを登録して管理する場所、というイメージだよ
← 用語集にもどる