コンテナレジストリ
Dockerコンテナイメージを保存・管理・配布するリポジトリサービス。Docker Hub・GitHub Container Registry・Amazon ECR・GCR・ACRなどがあり、CI/CDパイプラインの中核を担う。
コンテナレジストリとは?
コンテナレジストリは、Dockerコンテナイメージを保存・バージョン管理・配布するためのリポジトリサービスです。GitがソースコードをGitHubに保存するように、コンテナイメージはレジストリに保存します。
主なコンテナレジストリ
| サービス | 提供元 | 特徴 |
|---|---|---|
| Docker Hub | Docker | 最も有名・無料枠あり・Pull制限あり |
| GitHub Container Registry(GHCR) | GitHub | GitHubと統合・無料枠あり |
| Amazon ECR | AWS | AWSと完全統合・プライベートレジストリ |
| Google Container Registry(GCR) | GCP | GCPと統合 |
| Azure Container Registry(ACR) | Microsoft | Azureと統合 |
基本的な操作
# イメージをビルド
docker build -t my-app:v1.0 .
# タグを付けてレジストリにプッシュ(Docker Hub)
docker tag my-app:v1.0 username/my-app:v1.0
docker push username/my-app:v1.0
# レジストリからプル
docker pull username/my-app:v1.0
イメージのタグ管理
latest: 最新版(本番での使用は非推奨)- セマンティックバージョン:
v1.2.3(推奨) - Gitコミットハッシュ:
sha-abc1234(CI/CDでよく使われる)
セキュリティ機能
- イメージスキャン: プッシュ時にCVE脆弱性を自動検出(ECR・ACR等)
- アクセス制御: IAMやトークンによる認証・認可
- 署名: コンテナイメージの改ざん検知
まとめ
プライベートレジストリ(ECR・ACR等)はセキュリティと速度の面でパブリックレジストリより優れています。クラウドネイティブ開発では使用するクラウドと同じプロバイダーのレジストリを選ぶことで、認証や転送速度が最適化されます。
関連する用語 (DevOps)
全58件を見るRBAC
Role-Based Access Control(ロールベースアクセス制御)の略。Kubernetesでは、ユーザーやサービスアカウントに対してロールを割り当て、Kubernetes APIへのアクセス権限を細かく制御する仕組み。
ECR
Amazon Elastic Container Registryの略。AWSが提供するフルマネージドなDockerコンテナレジストリ。ECSやEKSと密に統合されており、IAMポリシーでアクセス管理できる。
Chaos Engineering
本番システムに意図的に障害を注入し、システムの回復力(レジリエンシー)を検証する実践手法。Netflixが提唱しChaos Monkeyで有名。「障害は必ず起きる」という前提のもと、弱点を事前に発見する。
APIゲートウェイ
クライアントと複数のバックエンドサービスの間に立つ単一の入口(エントリポイント)。認証・レート制限・ルーティング・ロギング・キャッシュを一元管理し、APIの公開・保護・管理を行う。
IaC(Infrastructure as Code)
インフラ構成をコードとして記述・管理する手法。Terraform・AWS CDK・Ansibleなどのツールを使い、インフラの再現性・バージョン管理・自動化を実現する。
IT用語: Terraformとは|インフラをコードで管理するIaCツール
AWSやGCPなどのクラウドリソースをコードで定義・管理するTerraformの仕組みとHCL構文を解説。