コンテナ

コンテナレジストリ こんてなれじすとり

DockerコンテナイメージKubernetesCI/CDDocker Hubプライベートレジストリ
コンテナレジストリについて教えて

簡単に言うとこんな感じ!

コンテナレジストリは、アプリの「設計図セット(コンテナイメージ)」を保管・配布するための倉庫だよ。スマホのApp Storeみたいなイメージで、開発者がアップロードした設計図を、サーバーがダウンロードして使う仕組みなんだ!


コンテナレジストリとは

コンテナレジストリとは、コンテナイメージ(アプリケーションの実行に必要なコードや設定をまとめたパッケージ)を保存・管理・配布するためのサービスまたはシステムのことです。コンテナ技術(特にDocker)を使う開発・運用において、イメージの置き場所として中心的な役割を担います。

開発チームがビルドしたイメージをレジストリにプッシュ(アップロード)し、本番サーバーやクラウドがそこからプル(ダウンロード)することで、「どの環境でも同じアプリが動く」という状態を実現します。Gitリポジトリがソースコードの保管庫であるように、コンテナレジストリはイメージの保管庫と考えるとわかりやすいでしょう。

システム発注・選定の観点では、セキュリティスキャン機能アクセス制御プライベート/パブリックの区別などがレジストリ選択の重要ポイントです。社内の機密コードを含むイメージを扱う場合は、パブリックレジストリではなくプライベートレジストリの利用が推奨されます。


コンテナレジストリの仕組みと構造

コンテナレジストリは「保管庫・棚・ラベル」の3階層で整理されています。

概念説明
レジストリイメージ全体の保管庫(サービス全体)Docker Hub、Amazon ECR
リポジトリ1つのアプリに対応するイメージの棚mycompany/webapp
タグバージョンを示すラベルv1.0latest2024-04

イメージの流れ(CI/CDとの連携)

実務ではCI/CDパイプライン(自動ビルド・デプロイの仕組み)と組み合わせて使われます。

開発者がコードをコミット

CI/CDツール(GitHub Actions等)が自動ビルド

コンテナイメージを生成

レジストリにプッシュ(保存)

Kubernetes等がプルして本番環境に展開

覚え方

「レジストリ=イメージのAmazon倉庫」 商品(イメージ)を倉庫(レジストリ)に入れておき、必要な人が注文(プル)して受け取るイメージです。


歴史と背景

  • 2013年 — Docker社がDockerを公開し、コンテナイメージという概念が普及し始める
  • 2013年Docker Hubがリリース。世界初の大規模パブリックコンテナレジストリとして登場
  • 2014年 — GoogleがGoogle Container Registry(現: Artifact Registry)を公開。クラウドベンダーが独自レジストリを提供し始める
  • 2015年OCI(Open Container Initiative)が設立され、イメージフォーマットと配布仕様の標準化が進む
  • 2015年 — AWSがAmazon ECR(Elastic Container Registry)を提供開始
  • 2017年Kubernetesがデファクトスタンダードに。レジストリとの連携が必須インフラとなる
  • 2020年 — Docker Hubが無料プランの利用制限(プルレート制限)を導入し、プライベートレジストリへの移行が加速
  • 2022年以降 — セキュリティスキャン・SBOMサポートなど、セキュリティ機能の強化が各サービスで進む

主要レジストリの比較

代表的なコンテナレジストリサービスを比較します。

サービス名提供元特徴向いているケース
Docker HubDocker社公開イメージが豊富・デファクトスタンダード公開OSSの利用・検証環境
Amazon ECRAWSAWSサービスとの親和性が高いAWSでシステムを構築している場合
Google Artifact RegistryGoogleGKE・Cloud Runと密連携Google Cloud利用環境
Azure Container RegistryMicrosoftActive Directory連携が強力Azure・Microsoft 365環境
GitHub Container RegistryGitHubGitHubのCI/CDと統合しやすいGitHub Actionsを使う開発チーム
HarborOSS自社サーバーに構築可能セキュリティ要件が厳しい社内環境

パブリック vs プライベートレジストリの構造

パブリック vs プライベートレジストリ パブリックレジストリ (例: Docker Hub) ✅ 無料の公開イメージが豊富  公式OSS・ミドルウェアが揃う ⚠️ 社外に公開される  機密コードは置けない ⚠️ プルレート制限あり  大量取得は有料プランが必要 👍 検証・学習・OSS活用に最適  すぐ始められる プライベートレジストリ (例: Amazon ECR / Harbor) ✅ アクセス制御が可能  社内メンバーだけが利用できる ✅ 機密コードを含むイメージOK  自社アプリの保管に適する ✅ セキュリティスキャン機能付き  脆弱性を自動検出できる ⚠️ 費用がかかる  ストレージ・転送量で課金

関連する規格・RFC

規格・仕様内容
OCI Image Specificationコンテナイメージのフォーマット標準(Open Container Initiative策定)
OCI Distribution SpecificationレジストリとのAPI通信仕様(プッシュ・プルの手順を定義)
OCI Runtime Specificationコンテナの実行環境に関する仕様(レジストリと連動)
RFC 7235 / RFC 6750HTTP認証の仕様(レジストリへのアクセス認証に利用)

関連用語

  • コンテナ — アプリとその実行環境をまとめてパッケージ化する技術
  • Docker — コンテナを作成・実行するための代表的なツール
  • コンテナイメージ — コンテナの設計図・テンプレートとなるファイル群
  • Kubernetes — 多数のコンテナを自動管理するオーケストレーションツール
  • CI/CD — コードのビルド・テスト・デプロイを自動化するパイプライン
  • Docker Hub — 最大手のパブリックコンテナレジストリサービス