Dockerイメージはどこに保存して、どうやってチームで共有するのでしょうか?その答えがレジストリです。この記事ではDocker公式のイメージ共有サービス「Docker Hub」の使い方から、社内に立てる「プライベートレジストリ」の構築方法まで徹底解説します。
レジストリとは?
レジストリはDockerイメージを保存・配布するためのサーバーです。GitにとってのGitHubのような存在です。
| 種類 | 説明 | 代表例 |
|---|---|---|
| パブリックレジストリ | 誰でもアクセスできる公開レジストリ | Docker Hub、GitHub Container Registry |
| プライベートレジストリ | 認証が必要な非公開レジストリ | AWS ECR、GCR、自前のRegistry |
Docker Hubの使い方
イメージのpull(ダウンロード)
# 公式イメージをpull
docker pull nginx
# タグを指定してpull(推奨)
docker pull nginx:1.25-alpine
# pull済みのイメージ一覧
docker images
自分のイメージをDocker Hubにpush
# 1. Docker Hubにログイン
docker login
# 2. イメージをビルド(Docker Hub IDを含める)
docker build -t your-id/myapp:1.0 .
# 3. Docker Hubにpush
docker push your-id/myapp:1.0
# 4. 別のサーバーでpull
docker pull your-id/myapp:1.0
プライベートレジストリの構築
社内のイメージを外部に公開したくない場合は、自前のプライベートレジストリを構築します。Dockerは公式のRegistryイメージを提供しており、コンテナとして簡単に立てられます。
# プライベートレジストリをポート5000で起動
docker run -d \
--name registry \
--restart always \
-p 5000:5000 \
-v registry_data:/var/lib/registry \
registry:2
# 起動確認
curl http://localhost:5000/v2/
プライベートレジストリへのpush/pull
# タグを付けてpush
docker tag myapp:latest localhost:5000/myapp:1.0
docker push localhost:5000/myapp:1.0
# pull
docker pull localhost:5000/myapp:1.0
# イメージ一覧を確認
curl http://localhost:5000/v2/_catalog
クラウドのコンテナレジストリ
| サービス | 特徴 | 無料枠 |
|---|---|---|
| Amazon ECR | AWSと連携・IAM認証 | 500MB/月 |
| Google Artifact Registry | GCPと連携・高速 | 0.5GB無料 |
| GitHub Container Registry | GitHubと連携 | パブリックは無料 |
| GitLab Container Registry | GitLab CI/CDと連携 | 5GBストレージ |
イメージの整理とクリーンアップ
# 未使用イメージを削除
docker image prune
# タグなしイメージをまとめて削除
docker image prune -a
# ディスク使用状況を確認
docker system df
# 未使用リソースを全削除
docker system prune -a --volumes
まとめ
- Docker Hubは世界最大のパブリックレジストリで
docker pullで即利用できる - 自分のイメージはDocker Hub IDを含めたタグを付けてpushする
- 社内利用にはRegistryコンテナで自前のプライベートレジストリを構築できる
- クラウドならAWS ECR・GCR・GitHub Container Registryが便利
docker system pruneで不要なイメージを定期的に整理しよう



コメント