Docker HubでPushできない時の覚え書

ひさびさにDockerを使ってDocker HubにPushしようとしたらいろいろとエラーが発生し、解決までに時間をかけてしまったので
同じ轍を踏まないように備忘録

前提

Pushしたいのはこのリポジトリ

syun03/appで設定しています。

Docker Hubのリポジトリ

発生事象その1:denied: requested access to the resource is denied

Docker HubにPushしようとするとdenied: requested access to the resource is deniedというエラーが発生しPushに失敗する

リソースにアクセスできないとのこと。コマンドは下記の通り。

C:\docker\my_app> docker push app:latest
The push refers to repository [docker.io/library/app]
20b4721fb0: Preparing
...
denied: requested access to the resource is denied

原因と解決方法

ググってみたところ原因となりそうなものは2つ

コマンドラインからPushしている場合はログイン済みか確認する

ログインしていない場合はエラーが発生するようだ。

docker login

ログインIDとパスワードを求められるので入力します。

「Login Succeeded」と表示されたらログイン完了です。

Push時のコマンドが正しいか

Push時のコマンドも1行目のハイライト部分が問題。

リポジトリにPushするときのコマンドは公式のリファレンスにも記載がある通り下記が正しい

docker push yourname/newimage

yournameの部分はDocker Hubのユーザ名を指定しなければなりません。

よって発生事象その1の対応は下記コマンドにすること。

C:\docker\my_app> docker push syun03/app:latest

よし、これできっと大丈夫だ。

The push refers to repository [docker.io/syun03/app]
An image does not exist locally with the tag: syun03/app

なんかまたエラーが出た、、

発生事象その2:An image does not exist locally with the tag:

image名が存在しないとのこと。

コマンドに使っている「app」というイメージはきちんと存在しているんだけど、なぜ見つからないのか、、

Docker Desktopを使っている場合はこう見えています。

docker desktopイメージ名の一覧 編集前

原因と解決方法

yourname/newimage

↑こいつのせいで混乱した気がする。

イメージ名はリポジトリ名と一致させる必要があります。

C:\docker\my_app>docker images
REPOSITORY                    TAG       IMAGE ID       CREATED        SIZE
app                 latest    cb309b330efa   2 days ago     772MB

これだとリポジトリ名と一致していません。イメージを作り直します。

C:\docker\my_app>docker images
REPOSITORY                    TAG       IMAGE ID       CREATED        SIZE
syun03/app                 latest    cb309b330efa   2 days ago     772MB

これが正解

Docker Desktopから見るともちろん変わっています。

docker desktopイメージ名の一覧 編集後

まとめ

慣れないことをすると本来やりたかったことまでたどり着くのに余計に時間がかかってしまう。。

スキルアップにつながったことにして納得することにします。

理解が間違っている部分があればコメント頂けると助かります。

コメントを残す