【Docker】Docker ~ Docker Hub への登録 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2023/12/02/024631

で、AWS ECRへの登録した。

近々、また、AWS ECRにDockerイメージを登録しそうなので
今回は、Docker Hub へ独自のDockerイメージ登録することを通して、
復習をしていきたい。

目次

【1】今回、必要なこと
【2】注意点
【3】前準備
 1)Docker Hub アカウント登録
 2)Docker Hub リポジトリ作成
【4】Docker Hub への登録手順
 Step1: Dockerfile作成
 Step2: docker image buildコマンド実行
 Step3: docker loginコマンド実行
 Step4: docker image pushコマンド実行
 Step5: 動作確認

【1】今回、必要なこと

以下の遷移図から分かるように、
Docer Hub に登録するには、以下が必要。
~~~~
[1] Docker imageを作る
[2] docker image push で登録する
~~~~

遷移図

                       +------------+
                       | Docker Hub |
                       +------------+
                             | ↑
                        pull | | push
                             ↓ |
+------------+  build  +--------------+
| Dockerfile | ------> | Docker Image |
+------------+         +--------------+

【2】注意点

* Docker イメージ名は、
 【Docker Hub ユーザ名/Docker Hub リポジトリ名】
 でなくてはならない
 => 今回の場合、【your_user/first_hello_repo】になる

【3】前準備

* 以下を行う必要がある

1)Docker Hub アカウント登録
2)Docker Hub リポジトリ作成

1)Docker Hub アカウント登録

* 以下のURLをアクセスし、アカウント登録する

https://hub.docker.com/

2)Docker Hub リポジトリ作成

[1] 以下のURLにアクセス

https://hub.docker.com/

[2] [Repositories] タブ押下
[3] [Create Repository] ボタン押下して、
 リポジトリを作成する
 => 今回は、「first_hello_repo」
 => ついでに「Docker commands」(※) の
  Pushコマンドをコピーしておく

※ Docker commands

# To push a new tag to this repository:

# docker push [UserName]/[Repository]:[TagName]
docker push your_user/first_hello_repo:tagname

【4】Docker Hub への登録手順

* やるべきことは、以下の通り。

Step1: Dockerfile作成
Step2: docker image buildコマンド実行
 => ここまでは「[1] Docker imageを作る」
Step3: docker loginコマンド実行
Step4: docker image pushコマンド実行
 => ここまでは「[2] docker image push で登録する」
Step5: 動作確認

* なお、各コマンドについては、以下の関連記事を参照のこと

Docker ~ 基本編 / レポジトリに関するコマンド ~
https://dk521123.hatenablog.com/entry/2023/01/21/000000

Step1: Dockerfile作成

オリジナルのDocker imageを作成するために
Dockerfileを作成する

Dockerfie

FROM nginx:latest
WORKDIR /usr/share/nginx/html
COPY index.html index.html 
RUN apt update

index.html

<html>
    <body>Hello World for Docker</html>
</html>

Step2: docker image buildコマンド実行

* docker buildコマンドで、Dockerイメージ作成する
 => 注意点でも書いたが、「イメージ名は【ユーザ名/リポジトリ名】になる」

コマンド例

# ファイル確認
$ ls
Dockerfile  index.html

# -t: タグを イメージ名(=ユーザ名/リポジトリ名):タグ の形式で指定
# docker image build -t ユーザ名/リポジトリ名[:タグ名] [Dockerfileパス]
$ docker image build -t your_user/first_hello_repo:v0.0.1 .

# 確認
$ docker image ls
REPOSITORY                    TAG       IMAGE ID       CREATED          SIZE
your_user/first_hello_repo       v0.0.1    XXXXXXXXX   17 minutes ago   206MB

Step3: docker loginコマンド実行

* docker login する

コマンド例

docker login --username your-user

Step4: docker image pushコマンド実行

コマンド例

# 別タグをつける場合
# docker image tag [イメージID] [ユーザ名]/[リポジトリ名]:[タグ]
# docker image tag XXXXXXXXX your_user/first_hello_repo:v0.0.1a
# 確認
# docker image ls

# Step4: Push
# docker push [UserName]/[Repository]:[TagName]
docker push your_user/first_hello_repo:v0.0.1

Step5: 動作確認

* 以下のURLで作成したリポジトリに
 Imageタグ「v0.0.1」があるか確認する

https://hub.docker.com/

参考文献

https://gray-code.com/blog/container-image-push-for-dockerhub/
https://zenn.dev/katan/articles/1d5ff92fd809e7

関連記事

Docker ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/24/160044
Docker ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/02/25/000000
Docker ~ 基本編 / Dockerfile ~
https://dk521123.hatenablog.com/entry/2020/04/14/000000
Docker ~ 基本編 / レポジトリに関するコマンド ~
https://dk521123.hatenablog.com/entry/2023/01/21/000000
Docker ~ 基本編 / docker imageコマンド ~
https://dk521123.hatenablog.com/entry/2020/04/13/000000
Amazon ECR ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/05/22/165711
Amazon ECR ~ Dockerイメージを Pull & Push ~
https://dk521123.hatenablog.com/entry/2023/12/02/024631