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の状態を定期的に確認し、必要な調整を行います。
関連記事: