2026年8月14日

2026年8月14日

Docker RegistryにプライベートイメージをPushする方法

はじめに

この記事では、Docker Registryを使用してプライベートのDockerイメージをPushする方法について解説します。デプロイメント管理やセキュリティ上の理由から、組織内でのイメージ共有が必要な場合があります。プライベートRegistryを使うことで、イメージの一貫性とアクセス制御が可能になります。

症状・背景

  • 秘密のDockerイメージを組織内の他のメンバーに提供したい。
  • セキュアな方法でDockerイメージを共有したい。
  • Dockerのインフラストラクチャを一元化し、管理を容易にする必要がある。

手順・設定方法

ステップ1: Docker Registryをセットアップする

# Docker Community Editionをインストール(ここではデフォルトのDocker Hubを使用)
sudo apt-get update && sudo apt-get install -y docker.io

# Docker Daemonを起動
sudo service docker start

# Dockerのrootユーザーにログイン
docker login

# Registryサーバーをセットアップするためのディレクトリを作成
mkdir ~/myregistry

# Docker Registryコンテナ化するためのDockerfileを作成
cat <<EOF > Dockerfile
FROM registry:2.7.1
EOF

# Docker Registryコンテナを起動
sudo docker run -d -p 5000:5000 --restart always --name myregistry \
    -v ~/myregistry:/var/lib/registry \
    -e REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/var/lib/registry registry:2.7.1

# 起動確認
sudo docker ps

ステップ2: Docker ImageをTaggingする

# 例としてnginxイメージの最新版を取得
docker pull nginx:latest

# TaggingしてプライベートRegistryに適切な名前で保存
docker tag nginx:latest localhost:5000/my-namespace/nginx:latest

ステップ3: Docker ImageをPushする

# まず認証情報を取得
echo -n "${REGISTRY_USER}:${REGISTRY_PASS}" | docker login --username="${REGISTRY_USER}" --password-stdin localhost:5000

# Push実行
docker push localhost:5000/my-namespace/nginx:latest

ステップ4: 実践/トラブルシュート/監視

# ローカルのRegistryに保存されたイメージを確認
sudo docker images --all

# Registryコンテナのログを確認
docker logs -f myregistry

注意事項

  • セキュリティ上の注意: 認証情報は安全な場所に保管し、漏洩しないようにします。
  • パフォーマンス/運用上の注意: 大量のイメージを管理する場合は、Registryサーバーのチューニングが必要です。

まとめ

1. Docker Registryのセットアップ: Dockerコンテナを使用してプライベートRegistryを構築します。

2. Image Tagging: デプロイメント用に適切な名前でイメージをタグ付けします。

3. Push操作: Docker CLIを使用してプライベートRegistryへイメージをプッシュします。

4. 監視と管理: Registryの状態を定期的に確認し、必要な調整を行います。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ