Docker HubでPushできない時の覚え書
ひさびさにDockerを使ってDocker HubにPushしようとしたらいろいろとエラーが発生し、解決までに時間をかけてしまったので
同じ轍を踏まないように備忘録
前提
Pushしたいのはこのリポジトリ
syun03/appで設定しています。
発生事象その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を使っている場合はこう見えています。
原因と解決方法
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から見るともちろん変わっています。
まとめ
慣れないことをすると本来やりたかったことまでたどり着くのに余計に時間がかかってしまう。。
スキルアップにつながったことにして納得することにします。
理解が間違っている部分があればコメント頂けると助かります。