
【Docker基礎】レジストリを作るには
Docker を本格的に使う場面では、自社専用のプライベートレジストリを用意したり、Docker Hub にイメージをアップロードしてグローバルに公開したりするケースが出てきます。レジストリはイメージを配布するための仕組みであり、コンテナのバージョン管理やデプロイをよりスムーズにする重要な要素です。ここでは、プライベートレジストリの構築手順と、Docker Hub の活用について解説します。

1.プライベートレジストリを作る
- Dockerレジストリ用コンテナ(registry)
・Docker 公式が配布しているregistry
イメージを使って、レジストリを簡単に立ち上げられる。
・ポートはデフォルトで 5000 番を使用 - 実行例
docker run -d -p 5000:5000 registry
・これでlocalhost:5000
を入り口としたプライベートレジストリが起動
・使用する側のマシンでは、このレジストリに対してログインし、docker pull
やdocker push
の対象をlocalhost:5000/イメージ名
と指定すればOK - 使うメリット
・社内ネットワーク だけでイメージを安全にやり取り可能
・オンプレ環境や独自クラウドでの運用にマッチ
・ネットワークを外部に開放せずに済む。
2.Docker Hub を使う
- 登録は無料
・メールアドレスさえあればアカウントを作れる。
・有料プランと無料プランがあり、無料プランにはいくつかの制限(6か月使わないイメージの削除など)がある。 - リポジトリを作成してプライベート化
・作ったイメージを public(全世界に公開)か private(限定公開)にするかを選べる。
・Public ならdocker push
後に自動的に世界中からアクセス可能
・Private は「Create a Repository」で設定し、特定メンバーだけが pull/push できるようにする。 - 注意点
・Docker Hub はサーバコストを抱えるため、不要なリポジトリを放置しないのがマナー
・無料プランではプライベートリポジトリは1つまでなど、制限がある。
3.レジストリをどのように使い分けるか
- プライベートレジストリ
・完全社内向けのイメージ配布
・インターネット非公開&高度なセキュリティを担保できる。
・ネットワークが閉じている環境でも運用可能 - Docker Hub
・世界的に認知度が高く、誰でもアクセスできる利便性
・オープンソースプロジェクトや外部コラボなど広く公開したいとき。
・有料プランならプライベートリポジトリを複数運用できる。 - 物理的コピー (
docker save
/docker load
)
・ネットが使えない環境や、単発のイメージ配布に適している。
大規模な継続運用にはあまり向かない。
4.プライベートレジストリとDocker Hubの比較

4.1 プライベートレジストリ
項目 | 説明 |
---|---|
運営者 | 企業や個人 |
アクセス制御 | 高度なアクセス制御が可能 |
セキュリティ | 内部ネットワーク内での利用に最適 |
コスト | 自社インフラを使用する場合、初期費用や維持費が発生 |
利用例 | 社内開発環境、限定的なプロジェクト共有 |
4.2 Docker Hub
項目 | 説明 |
---|---|
運営者 | Docker社 |
アクセス制御 | 公開・非公開リポジトリの選択が可能 |
セキュリティ | Docker社が管理するため、信頼性が高い |
コスト | 無料プランと有料プランがあり、用途に応じて選択可能 |
利用例 | オープンソースプロジェクト、チーム間のイメージ共有 |
図:プライベートレジストリとDocker Hubの比較
プライベートレジストリ Docker Hub
├── 高度なアクセス制御 ├── 公開・非公開リポジトリの選択
├── 自社インフラで運用 ├── Docker社が管理
├── セキュアな内部共有 ├── 世界中とのイメージ共有
└── 初期費用・維持費が発生 └── 無料プランと有料プランあり
まとめ
- レジストリ = イメージ配布の仕組み。Docker Hub もその1つ。
- プライベートレジストリ は社内ネットワークなど閉じた環境で安全にイメージ共有できる。
- Docker Hub はグローバルなイメージ配布・共有に強力(無料プランもあるが制限に注意)
- 必要に応じて 物理的コピー や プライベートレジストリ と組み合わせると柔軟性が高い。
次の「7章」では、Docker Compose について解説していきます。複数のコンテナをまとめて管理できる Compose の使い方を学び、さらに効率的な開発・運用を目指しましょう。