[Linux]Docker Hub にイメージをプッシュ
公開日:2025-11-30
更新日:2025-11-30
更新日:2025-11-30
1. 概要
Docker Hub にイメージをプッシュします。
Docker Hub は、イメージを公開したい場合に向いています。
2025年時点では、無料プランでは、非公開のイメージを 1 つだけ保持できます。
複数のイメージを非公開にしたい場合は、GHCR(GitHub Container Registry)を検討してください。
Docker Hub は、イメージを公開したい場合に向いています。
2025年時点では、無料プランでは、非公開のイメージを 1 つだけ保持できます。
複数のイメージを非公開にしたい場合は、GHCR(GitHub Container Registry)を検討してください。
2. Docker Hub のアカウントの作成
「Docker Hub」でアカウントを作成します。
「Personal access tokens」でトークンを作成すると、 ターミナルでログインする際に、パスワードの代わりにトークンでログインできるようになります。
「Personal access tokens」でトークンを作成すると、 ターミナルでログインする際に、パスワードの代わりにトークンでログインできるようになります。
3. Docker Hub でリポジトリの作成
サイトの左側のメニュー の Repositories をクリックして、ページの一番下までスクロールして、右側の「Create a repository」をクリックします。


リポジトリが存在しない時は、スクロールしないとボタンが表示されないので要注意。
リポジトリ名を「my-nginx」、Visibility を「Private」にして「Create」を押します。
リポジトリを公開しても良い場合は、プッシュすると自動的にリポジトリが作成されるため、事前にサイトで作成する必要はありません。


リポジトリが存在しない時は、スクロールしないとボタンが表示されないので要注意。
リポジトリ名を「my-nginx」、Visibility を「Private」にして「Create」を押します。
リポジトリを公開しても良い場合は、プッシュすると自動的にリポジトリが作成されるため、事前にサイトで作成する必要はありません。
4. Docker Hub にプッシュ
ターミナルで Docker Hub にログインします。
パスワードを求められますが、PAT を作成している場合は、トークンを入力してログインできます。
イメージに Docker Hub のユーザ名を付けた別名を付けます。
但し、実体は同じものです(イメージID が同じ)。
Docker Hub にプッシュします。
注意:デフォルトでは誰でもプルできるようになるため、非公開にしたい場合は、事前にサイト側で、同じリポジトリ名の Private なリポジトリを作成してください。
Docker Hub からプルしたことを確認するため、作成したイメージを削除します。
Docker Hub にプッシュしたイメージを使ってコンテナを起動します。
Public のイメージを使う場合は、誰でも使えるため、ログアウトした状態で使用できます。
Docker Hub からログアウトします。
http://localhost:8080/test.html にアクセスできれば OK です。
パスワードを求められますが、PAT を作成している場合は、トークンを入力してログインできます。
コマンド
docker login -u {DockerHub のユーザ名}
(例)
docker login -u testuser
イメージに Docker Hub のユーザ名を付けた別名を付けます。
コマンド
docker tag {リポジトリ名}:{タグ} {DockerHub のユーザ名}/{リポジトリ名}:{タグ}
(例)
docker tag my-nginx:1.0.0 testuser/my-nginx:1.0.0
実行後、docker imgages で確認すると、別名のイメージが追加されていることが確認できます。但し、実体は同じものです(イメージID が同じ)。
Docker Hub にプッシュします。
注意:デフォルトでは誰でもプルできるようになるため、非公開にしたい場合は、事前にサイト側で、同じリポジトリ名の Private なリポジトリを作成してください。
コマンド
docker push {DockerHub のユーザ名}/{リポジトリ名}:{タグ}
(例)
docker push testuser/my-nginx:1.0.0
Docker Hub からプルしたことを確認するため、作成したイメージを削除します。
コマンド
docker rmi {DockerHub のユーザ名}/{リポジトリ名}:{タグ}
(例)
docker rmi testuser/my-nginx:1.0.0
Docker Hub にプッシュしたイメージを使ってコンテナを起動します。
コマンド
docker run \
--name {コンテナ名} \
-d \
-p 80:80 \
{DockerHub のユーザ名}/{リポジトリ名}:{タグ}
(例)
docker run \
--name my-nginx-test \
-d \
-p 80:80 \
testuser/my-nginx:1.0.0
Private のイメージを使う場合は、Docker Hub にログインした状態で実行してください。Public のイメージを使う場合は、誰でも使えるため、ログアウトした状態で使用できます。
Docker Hub からログアウトします。
コマンド
docker logout
http://localhost:8080/test.html にアクセスできれば OK です。



