docker-hub について
docker-hub は、Docker イメージの公開、取得、管理を支援するガイダンススキルです。パブリック/プライベートレジストリ、タグ戦略、ダイジェスト固定、認証時の注意点を扱い、イメージのビルドは対象外です。
主な機能
- 01レジストリへのログインとイメージの送受信
- 02イメージタグとバージョン戦略の管理
- 03ダイジェストによるバージョン固定
- 04Docker Registry または Harbor の構築
- 05認証やプッシュ時の問題の確認
活用シーン
- 01アプリケーションイメージの公開
- 02プライベート Registry または Harbor の設定
- 03本番イメージのタグやダイジェストの固定
- 04CI でのレジストリ認証への対応
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ full-stack-skills/ docker-skills --skill docker-hubインストール後、Claude Code で/docker-hubを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlexamples/01-push-image.md02-private-registry.mdreferences/01-tag-strategy.md02-harbor-setup.md詳細
Docker Hub — イメージレジストリ管理
Docker イメージの公開、プル、管理に関するガイダンスです。
使用する場面
ユーザーが次の内容に言及した場合は、必ずこのスキルを使用してください:
- 「docker hub」、「docker registry」、「イメージレジストリ」
- 「docker push」、「docker pull」、「docker tag」
- 「プライベートレジストリ」、「private registry」、「Harbor」
- 「イメージミラー」、「registry mirror」
- 「docker login」、「認証」
基本的なワークフロー
# Login
docker login
docker login registry.example.com # Private registry
# Tag
docker tag myapp:latest myuser/myapp:v1.0.0
docker tag myapp:latest myuser/myapp:latest
# Push
docker push myuser/myapp:v1.0.0
docker push myuser/myapp:latest
# Pull
docker pull myuser/myapp:v1.0.0
docker pull myuser/myapp:latest
タグ戦略
| タグ | 用途 | 保持期間 |
|---|---|---|
v1.2.3 | 正確なリリース(semver) | 無期限 |
v1.2 | 最新のマイナーバージョン | 次のマイナーバージョンまで |
v1 | 最新のメジャーバージョン | 次のメジャーバージョンまで |
latest | 最新のビルド(開発時のみ!) | ローリング |
sha256-abc123 | ダイジェスト固定 | 必要に応じて |
Production: NEVER use :latest. Always pin exact version or digest.
Development: :latest is OK for convenience.
プライベートレジストリ
Docker Registry(公式)
docker run -d -p 5000:5000 --name registry \
-v registry:/var/lib/registry \
registry:2
docker tag myapp localhost:5000/myapp:v1
docker push localhost:5000/myapp:v1
Harbor(エンタープライズ)
# Download and run
wget https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-offline-installer-v2.10.0.tgz
tar xzf harbor-offline-installer-v2.10.0.tgz
cd harbor
cp harbor.yml.tmpl harbor.yml
# Edit harbor.yml (hostname, passwords)
./install.sh
イメージダイジェスト(不変の参照)
# Get digest
docker inspect --format='{{.RepoDigests}}' myimage:tag
# Pull by digest (immutable)
docker pull alpine@sha256:abc123...
ワークフロー — 推奨される操作手順
Step 1: レジストリにログイン: docker login または docker login ghcr.io
Step 2: タグ付け: docker tag myapp:v1 ghcr.io/org/myapp:v1
Step 3: イメージをプッシュ: docker push ghcr.io/org/myapp:v1
Step 4: 検証: docker pull ghcr.io/org/myapp:v1 でプルして確認
Step 5: バージョンを固定: 本番環境では docker pull myapp@sha256:abc... を使用
注意点 — よくある落とし穴
- 本番環境での
:latest: タグは変更可能なため、latestは時間の経過とともに異なるイメージを指す場合があります。→ 対処法: 常にバージョンまたはダイジェストを固定してください:docker pull myapp:v1.2.3@sha256:abc...。 - パブリックレジストリとプライベートレジストリの混在:
docker loginはレジストリごとに必要です。→ 対処法:docker login registry.example.comを個別に実行してください。認証情報ヘルパーを使用する場合は、AWS ECR 用のdocker-credential-ecr-loginなどを利用します。 - 大きなイメージのプッシュがタイムアウトする: 大きなイメージの場合は、デーモン設定で
max-concurrent-uploadsを設定してください。→ 対処法: 接続速度が遅い場合は、/etc/docker/daemon.jsonを編集して{"max-concurrent-uploads": 1}を設定します。 - CI でのレジストリ認証:
docker/login-action(GitHub Actions)またはシークレットマネージャーを使用してください。→ 対処法: 認証情報をコミットしないでください。クラウドレジストリでは、有効期間の長いトークンではなく OIDC を使用します。
境界 — 対応範囲(適用できる場面とできない場面)
| 分類 | 場面 | 説明 |
|---|---|---|
| ✅ 対応可能 | パブリックレジストリの利用(Docker Hub/GHCR) | ログイン、push/pull、タグ管理 |
| ✅ 対応可能 | プライベートレジストリの構築 | Docker Registry + Harbor のエンタープライズソリューション |
| ✅ 対応可能 | タグ戦略の策定 | semver/sha256/digest を比較して選定 |
| ⚠️ 条件付き | イメージミラー(registry-mirrors) | daemon.json の設定と利用可能なミラーサービスが必要 |
| ⚠️ 条件付き | Harbor の高可用性デプロイ | Redis Cluster + PG のプライマリ/レプリカ構成を別途設定する必要があります |
| ❌ 対象外 | イメージのビルド | docker-build を使用 |
| ❌ 対象外 | CVE スキャン | docker-scout を使用 |
| ❌ 対象外 | CI/CD のイメージ管理 | docker-cicd を使用 |
使用しない場面
| ❌ 対象外 | ✅ 代わりに使用 |
|---|---|
| イメージのビルド | docker-build |
| 脆弱性スキャン | docker-scout |
| CI/CD パイプライン | docker-cicd |
| Docker の基本 | docker-basics |
セキュリティと安定性
- レジストリの認証情報をコミットしないでください。CI のシークレットマネージャーを使用します。
- コンテンツトラストを使用するには、署名済みイメージに対して
export DOCKER_CONTENT_TRUST=1を設定します。 - Harbor は脆弱性スキャン、レプリケーション、RBAC を提供します。
- 実行可能なスクリプトは同梱されていません。ガイダンスのみを提供します。
📚 公式ドキュメントの参照
| ドキュメント | アドレス |
|---|---|
| Docker Hub | https://docs.docker.com/docker-hub/ |
| Docker Hub API | https://docs.docker.com/reference/api/hub/latest/ |
| Docker Registry | https://docs.docker.com/registry/ |
| Harbor プロジェクト | https://goharbor.io/ |
| イメージ管理 CLI | https://docs.docker.com/reference/cli/docker/image/ |
| コンテンツトラスト | https://docs.docker.com/engine/security/trust/ |
🧭 Docker Skills Journey
📍 現在の位置:
docker-hub— イメージレジストリ管理
← 前へ: docker-scout — 脆弱性スキャン
→ 次へ: docker-cicd — CI/CD 統合
よくある質問
Q1: このスキルをすぐに使い始めるには? A: 上記のクイックスタートの章を参照し、手順に従って操作してください。
Q2: バージョンの互換性に関する問題が発生した場合はどうすればよいですか? A: 依存関係のバージョンを確認し、lock ファイルで固定してください。よくある落とし穴の章も参照してください。
Q3: 本番環境で使用するには? A: ベストプラクティスの章を参照し、設定が正しいことを確認したうえで、監視とログの準備をしてください。
Q4: パフォーマンスを最適化するには? A: パフォーマンス最適化に関するドキュメントを参照し、キャッシュやインデックスなどを活用してください。
Q5: 貢献したり、問題を報告したりするには? A: GitHub リポジトリで Issue または Pull Request を提出してください。
Q6: 中国語に対応していますか? A: 中国語のドキュメントとコメントに対応しています。国内向け対応の章を参照してください。