コンテナレジストリ とは
Dockerイメージストレージ
コンテナレジストリ
コンテナレジストリ は、Dockerイメージやその他のOCI準拠アーティファクトの集中ストレージであり、バージョン管理、アクセス制御、コンテナ配布を提供します。
レジストリの種類
| 種類 | 例 | |------|-----| | パブリック | Docker Hub、GitHub Container Registry | | クラウド | AWS ECR、Google GCR、Azure ACR | | セルフホスト | Harbor、Nexus、JFrog Artifactory | | GitLab | GitLab Container Registry |
主な機能
- イメージストレージ — 集中リポジトリ
- バージョニング — 識別用のタグとダイジェスト
- アクセス制御 — RBACとセキュリティポリシー
- 脆弱性スキャン — Trivy、Clairとの統合
- レプリケーション — リージョン間のミラーリング
レジストリの操作
| コマンド | 説明 | |----------|------| | docker login | レジストリへの認証 | | docker push | イメージのアップロード | | docker pull | イメージのダウンロード | | docker tag | タグの作成 |
ベストプラクティス
- 不変タグを使用する(latestは使用しない)
- イメージの脆弱性をスキャンする
- イメージに署名する(Cosign、Notary)
- 古いイメージのクリーンアップポリシーを設定
- ガベージコレクションを有効化
CI/CD統合
# GitLab CI例
build:
script:
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA