🐳 STEP 7: Docker Hubとイメージの取得
Docker Hubの使い方、イメージの検索と取得、タグの理解
📋 このステップで学ぶこと
- Docker Hubとは何か、その役割と機能
- docker searchコマンドとWebサイトでのイメージ検索
- docker pullコマンドの使い方とオプション
- イメージ名の構造(レジストリ/リポジトリ:タグ)
- タグの種類と選び方のベストプラクティス
- 公式イメージと非公式イメージの違い
- イメージの管理(一覧表示、削除、クリーンアップ)
🌐 1. Docker Hubとは
1-1. Docker Hubの概要
Docker Hubは、Dockerイメージを保存・共有するためのクラウドサービスです。
世界最大のコンテナイメージレジストリで、誰でも無料で利用できます。
GitHub = ソースコードを保存・共有するサービス
Docker Hub = Dockerイメージを保存・共有するサービス
GitHubからソースコードをcloneするように、
Docker Hubからイメージをpull(ダウンロード)します。
1-2. Docker Hubでできること
数百万のイメージから
必要なものを検索
docker pullで
簡単にダウンロード
自作イメージを
世界に公開可能
GitHubと連携して
自動でイメージビルド
1-3. Docker Hubの規模
1-4. Docker Hubアカウント
Docker Hubは無料で利用できますが、アカウントを作成するとより多くの機能が使えます。
| 機能 | 未ログイン | 無料アカウント |
|---|---|---|
| イメージのダウンロード | 100回/6時間 | 200回/6時間 |
| パブリックリポジトリ | 利用不可 | 無制限 |
| プライベートリポジトリ | 利用不可 | 1つまで |
| イメージのアップロード | 不可 | 可能 |
学習中は未ログインでも十分ですが、本格的に使う場合は無料アカウントを作成しましょう。
公式サイト:https://hub.docker.com/
1-5. その他のコンテナレジストリ
Docker Hub以外にも、イメージを保存・共有できるサービスがあります。
| レジストリ | 説明 |
|---|---|
| Docker Hub | デフォルトのレジストリ。最も広く使われている。 |
| GitHub Container Registry | GitHubが提供。GitHubリポジトリと統合しやすい。 |
| Amazon ECR | AWSが提供。AWSサービスとの連携が容易。 |
| Google Container Registry | GCPが提供。Google Cloudとの連携が容易。 |
| Azure Container Registry | Microsoftが提供。Azureとの連携が容易。 |
Docker Hubを使用します。これがデフォルトのレジストリで、
特に指定しなければ自動的にDocker Hubからイメージを取得します。
🔍 2. イメージの検索方法
2-1. docker searchコマンド
docker searchコマンドで、ターミナルからイメージを検索できます。
docker search:Docker Hubでイメージを検索するコマンドnginx:検索キーワード
2-2. 検索結果の読み方
| 列名 | 意味 |
|---|---|
| NAME | イメージ名。/が含まれる場合は「ユーザー名/イメージ名」の形式。 |
| DESCRIPTION | イメージの説明。どのような用途か確認。 |
| STARS | ユーザーからの評価(いいね数)。多いほど人気・信頼性が高い。 |
| OFFICIAL | [OK]なら公式イメージ。Docker社が認定した信頼できるイメージ。 |
2-3. 検索オプション
--filter "is-official=true":公式イメージのみに絞り込み
2-4. Docker Hub Webサイトでの検索
より詳しい情報を得るには、Webサイトでの検索がおすすめです。
- 詳しいドキュメントと使用例が確認できる
- 利用可能なタグの一覧が見やすい
- 最終更新日時がわかる(古いイメージは避ける)
- 脆弱性情報が確認できる場合もある
2-5. 検索時のチェックポイント
- 公式イメージを優先:[OFFICIAL]マーク付きを選ぶ
- スター数を確認:1,000以上なら安心、100未満は要注意
- 更新日時を確認:1年以上更新されていないものは避ける
- ダウンロード数を確認:多いほど多くの人に使われている
- 説明を読む:目的に合っているか確認
⬇️ 3. docker pull – イメージの取得
3-1. docker pullの基本
docker pullコマンドで、Docker Hubからイメージをダウンロードします。
docker pull:イメージをダウンロードするコマンドnginx:ダウンロードするイメージ名
3-2. ダウンロード進捗の読み方
| 表示 | 意味 |
|---|---|
Using default tag: latest |
タグを指定しなかったので、latestタグが使われる |
Pulling from library/nginx |
library/nginx(公式イメージ)から取得中 |
a2abf6c4d29d: Pull complete |
レイヤーID a2abf… のダウンロード完了 |
Already exists |
このレイヤーは既にローカルにある(再ダウンロード不要) |
Digest: sha256:... |
イメージの一意な識別子(ダイジェスト) |
Status: Downloaded... |
ダウンロード完了 |
3-3. タグを指定してダウンロード
nginx:1.25:イメージ名:タグ の形式でバージョンを指定
3-4. タグを省略した場合
latestは「最新版」を意味しますが、いつ更新されるかわかりません。
昨日と今日で中身が違う可能性があります。
本番環境では必ずバージョンを指定しましょう。
3-5. ダウンロードしたイメージの確認
docker images :ローカルにあるイメージの一覧を表示
- REPOSITORY:イメージ名
- TAG:バージョン(タグ)
- IMAGE ID:イメージの一意なID
- CREATED:イメージが作成された日時
- SIZE:イメージのサイズ
🏷️ 4. イメージ名とタグの構造
4-1. イメージ名の完全な形式
Dockerイメージ名には、完全な形式があります。
4-2. 省略形の仕組み
普段使う短い形式は、省略された形です。
| 入力 | 実際の完全形式 |
|---|---|
nginx |
docker.io/library/nginx:latest |
nginx:1.25 |
docker.io/library/nginx:1.25 |
bitnami/nginx |
docker.io/bitnami/nginx:latest |
ghcr.io/owner/image:v1 |
ghcr.io/owner/image:v1(GitHub Container Registry) |
- レジストリ省略 → Docker Hub(docker.io)が使われる
- 名前空間省略(/なし) → 公式イメージ(library)
- タグ省略 → latest が使われる
4-3. タグの種類と意味
| タグ形式 | 意味と例 |
|---|---|
latest |
最新版(デフォルト)。内容は予告なく変わる可能性あり。 |
1.25 |
メジャー.マイナー版。1.25系の最新パッチが適用される。 |
1.25.3 |
完全なバージョン番号。内容が固定される(推奨)。 |
alpine |
Alpine Linuxベースの軽量版。 |
1.25-alpine |
バージョン1.25のAlpine版。 |
slim |
不要なパッケージを削除した軽量版。 |
bookworm / bullseye |
Debianのバージョン名(bookworm=12, bullseye=11) |
4-4. Pythonイメージのタグ例
Pythonイメージには多くのバリエーションがあります。
4-5. タグ選択のベストプラクティス
nginx(タグなし)nginx:latest- 更新が1年以上前のイメージ
理由:予期しない更新で動作が変わる可能性
nginx:1.25(メジャー固定)nginx:1.25.3(完全固定)nginx:1.25-alpine(軽量版)
理由:再現性と安定性を確保
開発環境:メジャーバージョン固定(例:python:3.10)
本番環境:完全固定 + 軽量版(例:python:3.10.13-slim)
✅ 5. 公式イメージと非公式イメージ
5-1. 公式イメージ(Official Images)
公式イメージは、Docker社が認定し、品質とセキュリティが保証されたイメージです。
- Docker社が厳格にレビュー・認定
- 定期的にセキュリティアップデート
- 充実したドキュメント
- 検索結果に[OFFICIAL]マーク
- イメージ名に/(スラッシュ)がない
5-2. 非公式イメージ(Community Images)
非公式イメージは、個人や組織が独自に公開したイメージです。
- 個人・組織が独自に公開
- 公式にない追加機能が含まれることも
- セキュリティは作成者次第
- イメージ名に/(スラッシュ)がある
5-3. 公式 vs 非公式の比較
| 項目 | 公式イメージ | 非公式イメージ |
|---|---|---|
| 信頼性 | Docker社が認定。高い信頼性。 | 作成者による。スター数で判断。 |
| セキュリティ | 定期的にスキャン・更新。 | 作成者次第。自己責任。 |
| ドキュメント | 充実している。 | ある場合とない場合がある。 |
| 機能 | 標準的な構成。 | カスタマイズ・追加機能あり。 |
| 名前の形式 | nginx(/なし) |
bitnami/nginx(/あり) |
5-4. イメージ選択のガイドライン
基本ルール:公式イメージを優先
- まず公式イメージで要件を満たせるか確認
- 本番環境では特に公式を使う
非公式を検討する場合
- 公式にない特殊な機能が必要
- 信頼できる組織が提供(Bitnami、Linuxserverなど)
- スター数が多く(1,000以上)、活発にメンテナンス
- 出所不明のイメージ
- スター数が100未満
- 最終更新が1年以上前
- ドキュメントがない
🗑️ 6. イメージの管理コマンド
6-1. イメージの一覧表示
6-2. イメージの削除
docker rmi:イメージを削除するコマンド(rm image の略)nginx:1.25:削除するイメージ名:タグ
コンテナが使用中のイメージは通常削除できません。
先にコンテナを停止・削除してから、イメージを削除しましょう。
-fオプションで強制削除できますが、慎重に使いましょう。
6-3. 不要なイメージの一括削除
docker image prune :タグが付いていない「dangling」イメージを削除
※ビルド時に生成される中間イメージなどが対象
6-4. ディスク使用量の確認
このコマンドは強力で、以下を全て削除します:
・停止中のコンテナ
・未使用のネットワーク
・danglingイメージ
・ビルドキャッシュ
実行前に内容を確認しましょう。
💪 7. 練習問題
Docker Hubで「redis」を検索してください
コマンドラインで検索し、公式イメージのスター数を確認してください。
公式のredisイメージには[OK]マークがあり、スター数は12,000以上です。
nginxイメージを3つのタグでダウンロードしてください
nginx:latest、nginx:1.25、nginx:1.25-alpine をダウンロードし、サイズを比較してください。
結果例:latest(約187MB)、1.25(約187MB)、1.25-alpine(約43MB)
Alpine版は約1/4のサイズです。
ローカルのイメージ一覧を確認してください
ダウンロードしたイメージの一覧と、合計サイズを確認してください。
異なるバージョンのPythonイメージを取得してください
タスク:
- python:3.9、python:3.10、python:3.11をダウンロード
- 各イメージでPythonのバージョンを確認
- サイズを比較
タグを指定してRedisコンテナを起動してください
タスク:
- redis:7-alpineでコンテナを起動
- コンテナ名は「my-redis」、ポート6379で公開
- ログを確認
- 停止・削除
公式と非公式のnginxイメージを比較してください
タスク:
- nginx(公式)とbitnami/nginx(非公式)を検索
- 両方をダウンロード
- サイズを比較
公式nginx(約187MB)、bitnami/nginx(約100MB程度)
Bitnamiはカスタマイズされており、構成が異なります。
不要なイメージを削除してください
タスク:
- 現在のディスク使用量を確認
- 使用していないイメージを特定
- 不要なイメージを削除
- 削除後のディスク使用量を確認
イメージの完全な名前を確認してください
docker pull nginx を実行した時、実際にどこからダウンロードされるか確認してください。
完全な名前の解読:
docker.io = Docker Hub(レジストリ)
library = 公式イメージの名前空間
nginx = イメージ名
latest = タグ
📝 STEP 7 のまとめ
- Docker Hubは世界最大のイメージレジストリ
- docker searchとWebサイトでイメージを検索
- docker pullでイメージを取得
- イメージ名はレジストリ/リポジトリ:タグの構造
- 公式イメージを優先して使う
- latestは避け、バージョンを固定する
- docker rmiとdocker image pruneで不要なイメージを削除
| コマンド | 機能 |
|---|---|
docker search キーワード |
Docker Hubでイメージを検索 |
docker pull イメージ:タグ |
イメージをダウンロード |
docker images |
ローカルのイメージ一覧を表示 |
docker rmi イメージ:タグ |
イメージを削除 |
docker image prune |
未使用のイメージを一括削除 |
docker system df |
ディスク使用量を確認 |
Docker Hubは、Dockerエコシステムの心臓部です。
適切なイメージを選ぶことが、安全で効率的なDocker利用の第一歩です。
3つの鉄則:
1. 公式イメージを優先
2. バージョンを固定(latestは使わない)
3. 定期的に不要なイメージを削除
次のSTEP 8では、「コンテナのライフサイクル管理」を学びます。
- docker createとdocker start(コンテナの作成と起動を分離)
- docker exec(実行中のコンテナでコマンド実行)
- docker inspect(詳細情報の確認)
- コンテナのライフサイクル全体を理解
コンテナをより細かく制御できるようになりましょう!
学習メモ
Docker・コンテナ技術入門 - Step 7