このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Docker超入門:Docker Hubへのイメージ公開から取得・コンテナ実行までの流れ

Docker Hubへのイメージ公開から取得・コンテナ実行までの流れ
Docker Hubは、世界中の開発者がイメージを公開・共有できる公式レジストリです。自分が作成したイメージをDocker Hubに公開しておけば、他のマシンに簡単にダウンロードして実行できます。ここでは、Docker Hubへのオリジナルイメージの公開から、公開したイメージを取得してコンテナを実行するまでの流れ を解説していきます。

Docker Hubへのログイン
Docker Hubにアクセスするには、まずログインが必要です。
ログインはコマンドラインからでも、Docker DesktopのGUIからでも可能です。
コマンドの書式
docker loginこのコマンドを実行すると、ユーザー名とパスワード(もしくはアクセストークン)を入力するよう求められます。
| 項目 | 説明 |
|---|---|
| Username | Docker Hubのユーザー名 |
| Password | 登録したパスワード、または発行したアクセストークン |
認証情報がすでに保存されている場合は自動的にログインされます。
出力例
PS C:\Users\joeac> docker login
Authenticating with existing credentials... [Username: infralinux1]
i Info → To login with a different account, run 'docker logout' followed by 'docker login'
Login SucceededDocker Hubにイメージを公開
ローカルに作成したDockerイメージを、Docker Hubに公開(push)してみましょう。これで他の環境から取得できるようになります。
イメージにタグを付ける
docker image tag [ローカルイメージ名] [Docker Hubユーザー名]/[リポジトリ名]:[タグ]出力例
PS C:\Users\joeac> docker image tag ubuntu-echo infralinux1/ubuntu-smp:2.0タグを確認するには以下のコマンドを使います。
PS C:\Users\joeac> docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-smp2 latest 29f7dd0c5150 25 hours ago 118MB
infralinux1/ubuntu-smp-img 1.0 231a383336c0 2 days ago 117MB
infralinux1/ubuntu-smp 1.0 83e81b62b3c4 2 weeks ago 117MB
infralinux1/ubuntu-smp 2.0 83e81b62b3c4 2 weeks ago 117MB
ubuntu-echo latest 83e81b62b3c4 2 weeks ago 117MBDocker Hubへアップロード
docker image push [Docker Hubユーザー名]/[リポジトリ名]:[タグ]出力例
PS C:\Users\joeac> docker image push infralinux1/ubuntu-smp:2.0
The push refers to repository [docker.io/infralinux1/ubuntu-smp]
eb2ec5c56341: Pushed
953cdd413371: Pushed
2.0: digest: sha256:83e81b62b3c4e064ce500ca203c01da5b101b857fe54bb71fbd1984af610ee0d size: 855アップロードが完了すると、Docker Hubのリポジトリページに反映されます。Docker Desktop の GUIでも「Images → My Hub」タブから確認可能です。

イメージの取得(docker image pull)
次に、Docker Hubからイメージを取得します。ここでは、公開済みの infralinux1/ubuntu-smp:2.0 を使います。公開したイメージは、他の環境や別のPCから取得できるようになります。
コマンドの書式
docker image pull [ユーザー名/イメージ名:タグ]コマンドの意味
docker image pull … 指定したイメージをDocker Hubなどのリモートレジストリから取得する
出力例
PS C:\Users\joeac> docker image pull infralinux1/ubuntu-smp:2.0
2.0: Pulling from infralinux1/ubuntu-smp
Digest: sha256:83e81b62b3c4e064ce500ca203c01da5b101b857fe54bb71fbd1984af610ee0d
Status: Image is up to date for infralinux1/ubuntu-smp:2.0
docker.io/infralinux1/ubuntu-smp:2.0実行すると、イメージの各レイヤーが順にダウンロードされ、ローカルに保存されます。
主なオプション
| オプション | 説明 |
|---|---|
| :タグ名 | バージョンを指定。省略すると latest が適用される |
| --all-tags | 指定リポジトリのすべてのタグを取得 |
取得したイメージを確認します。
PS C:\Users\joeac> docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-smp2 latest 29f7dd0c5150 25 hours ago 118MB
infralinux1/ubuntu-smp-img 1.0 231a383336c0 2 days ago 117MB
infralinux1/ubuntu-smp 1.0 83e81b62b3c4 2 weeks ago 117MB
infralinux1/ubuntu-smp 2.0 83e81b62b3c4 2 weeks ago 117MB
ubuntu-echo latest 83e81b62b3c4 2 weeks ago 117MB一覧に infralinux1/ubuntu-smp:2.0 が表示されれば成功です。
コンテナの作成と実行(docker container run)
取得したイメージを元に、コンテナを実行してみましょう。
コマンドの書式
docker container run [オプション] [イメージ名:タグ]出力例
PS C:\Users\joeac> docker container run --name ubuntu-smp2 infralinux1/ubuntu-smp:2.0
Hello Ubuntu実行すると、「Hello Ubuntu」と表示されます。
イメージの削除(Docker Hub側)
不要になった公開したイメージを、Docker Hubから削除しておきます。
手順は次のとおりです。
1.Docker Hub にアクセスしてログイン
2.右上のメニューから「My Hub」をクリック

3.「Repositories」一覧ページが表示される。
4.削除したいリポジトリ(例:infralinux1/ubuntu-smp)をクリック

5.「Settings」タブをクリック

6.ページ下部までスクロールし「Delete repository」をクリック

7.表示されたポップアップに案内されたリポジトリ名(例:ubuntu-smp)を入力
8.「Delete repository forever」をクリック

削除確認の状態
1.削除直後は「DELETING」のマークが付きます。
削除直後は「DELETING」と表示され、しばらくすると完全に消えます。

2.ページをリロードすると、リポジトリが一覧から消えます。
反映には少し時間がかかります

ローカル環境のクリーンアップ(docker system prune)
最後に、ローカルで不要になったコンテナやイメージをまとめて削除するには、以下のコマンドが便利です。5章の演習に備えて環境を綺麗にしておきます。
PS C:\Users\joeac> docker system prune -a
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all images without at least one container associated to them
- all build cache
Are you sure you want to continue? [y/N] y
Deleted Containers:
(省略)
du5nt75d21ukgmp1jh2ft01ne
Total reclaimed space: 60.36MB-aを付けると未使用のイメージも含めて削除- 実行後に「Total reclaimed space: ○.○GB」と表示され、解放されたディスク容量がわかります
まとめ
docker loginでDocker Hubにログインdocker image pullでイメージを取得docker container runでコンテナを作成・実行- 不要になったイメージやコンテナは削除してクリーンに保つ
