⑥Docker・コンテナ

Docker Hubとプライベートレジストリの使い方【イメージ管理完全ガイド】

⑥Docker・コンテナ
記事内に広告が含まれています。

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 ECRAWSと連携・IAM認証500MB/月
Google Artifact RegistryGCPと連携・高速0.5GB無料
GitHub Container RegistryGitHubと連携パブリックは無料
GitLab Container RegistryGitLab 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で不要なイメージを定期的に整理しよう

コメント

タイトルとURLをコピーしました