イメージタグとは?イメージの命名とバージョン管理
イメージタグはリポジトリ上の読みやすいラベルです - myapp:1.4 - 特定のイメージを指しますが、後で別のものを指すよう動かすこともできます。
タグは人間がイメージを参照する方法です。完全な参照はリポジトリとタグを組み合わせたもので、ghcr.io/acme/web:1.4 のようになります。タグは単なる可動なポインタなので、あなたのタグ付け戦略が deploy の予測可能性と追跡可能性をさりげなく左右します。
参照の構造
参照は [registry/]repository:tag です。タグを省略すると、Docker は latest を想定します。タグはリポジトリ上のラベルであり、イメージ内容の一部ではありません - だからこそ指し先を変えられるのです。
latest の問題
latest は単なる慣習的なタグであり「最新」ではありません - 最後に push された場所を指します。それに依存すると deploy が再現不可能になります。なぜなら latest の背後にあるビットは予告なく変わり得るからです。
タグ付け戦略
- リリースにはセマンティックバージョン(
1.4.0)。 - commit への正確な追跡のために Git SHA タグ(
sha-abc123)。 - リリースへの可動なポインタとして環境タグ(
staging、prod)。
タグと digest
タグは便利ですが可変で、digest は不変です。一般的なパターンは、人間向けにタグ付けし、保証のために digest で deploy することです。
CI におけるタグ付け
pipeline は通常、各 build にバージョンと commit SHA の両方でタグ付けし、push します。SHA タグは実行中のイメージを正確なコードに結びつけるため、deploy をデバッグするときに計り知れない価値があります。
重要なポイント
- タグはリポジトリ上の可動で人間可読なラベルです。
latestは「最後に push されたもの」を意味し「最新」ではありません - それに依存しないようにしましょう。- 追跡可能性のため、リリースにはバージョンと commit SHA でタグ付けしましょう。
関連ガイド
What Is an Image Digest? Pinning the Exact BitsAn image digest is a SHA-256 hash that names exact image content and never moves. Learn how digests differ fr…
What Is a Docker Image? Layers, Tags, and Digests ExplainedA Docker image is an immutable, layered template for containers. Learn how layers, tags, and digests work and…
What Is a Container Registry? Where Images LiveA container registry stores and distributes images by repository and tag. Learn how push and pull work, what…