このエラーは、Docker Hubのパブリックリポジトリにイメージをプッシュしようとすると発生します。私が試した他のレジストリに問題はありませんでした。
StackOverflowを含む多数のサイト、ブログを見てきましたが、まだ明確な答えはありません。
この問題を次のように再現できます。
上記のスクリーンショットに示すように、画像aspc-mvc-app
ローカルドッカーホスト。示されているように、3つのタグがあります-1.0.5
、1.0.5.latest
およびlatest
。
Docker Hubでjanedoe
のアカウント名を使用してプッシュしようとしていると仮定します
Docker.io および他の多数のサイトのドキュメントごとに、プッシュするための3つのステップがあります。
(1)ログイン
docker login "index.docker.io" -u janedoe -p <password>
-> Login Succeeded
どっちがいい!
(2)1つ以上のタグを追加
3つのタグのうち、latest
にタグを付けましょう。
docker tag janedoe/aspc-mvc-app:latest janedoe/aspc-mvc-app
->プロンプトはエラーなしで戻ります。ここまでは順調ですね。
(3)プッシュ
docker Push janedoe/aspc-mvc-app
->これはエラーが発生する場所です。
以下のスクリーンショットに示すように、エラーdenied:リソースへの要求されたアクセスが拒否されるまで、初期チェックは正常に行われているようです
ステップ(2)で、次のような他の多くの形式を試しました。
docker tag janedoe/aspc-mvc-app:latest janedoe/aspc-mvc-app:latest
docker tag janedoe/aspc-mvc-app janedoe/aspc-mvc-app:latest
docker tag aspc-mvc-app:latest janedoe/aspc-mvc-app
docker tag aspc-mvc-app janedoe/aspc-mvc-app:latest
docker tag 306a8fd79d88 janedoe/aspc-mvc-app
docker tag 306a8fd79d88 janedoe/aspc-mvc-app:latest
すべて同じエラーで失敗します。
比較として、まったく同じイメージで、Azure Container Registryにプッシュしても問題はありませんでした。
Docker Hubは非常に人気があるので、誰がミステリーとは何か、またはどこに詳細なドキュメントがあるのかを明らかにできますか?
2017年5月9日更新
Docker CLIとサーバーのバージョンはかなり最新です。現在、私のcliは17.05.0-ce-rc1
およびサーバーは17.04.0-ce
以下に示すように。
解決策は、手順(1)でのログイン方法を変更することです。
docker login -u janedoe -p <password>
他のすべては上記の方法を維持できます。イメージがDocker Hubに正常にプッシュされました!
1)最初にSudo docker login
と入力してログインします。ユーザー名とパスワードを入力してください
2)Dockerアカウントにアクセスして、新しいリポジトリを作成します。私の場合、リポジトリを作成しましたzawad1879/dockerhub
3)リポジトリ名:zawad/Djangoおよびタグ:latestのdockerイメージがあるとします。
その場合、この画像に希望のラベルをタグ付けする必要があります。ラベルでタグ付けすることにしました:myfirstimagepush。コマンドを入力して画像にタグを付けます
Sudo docker tag zawad/Django:latest zawad1879/dockerhub:firstimagepush
4)最後に、コマンドを使用して画像をリポジトリにプッシュします
Sudo docker Push zawad1879/dockerhub:firstimagepush
これですべてです。
私も同じ問題を抱えていましたが、いくつかの組み合わせを試した後、これはうまくいきました。
プッシュするたびに-これはdocker.io/に続いてレジストリパスを参照します。
私の場合、ユーザー名はrushmithであり、rushmithの下にdockerというサンプルリポジトリを作成しました。
私のリンクは:"hub.docker.com/r/rushmith/docker/"
次に、プッシュする画像にタグを作成しました:rushmith/docker
そして、うまくいきました。
$ docker login -u rushmith
(パスワードを入力して、以下のように入力します)
$ docker Push rushmith/docker:latest
出力:
The Push refers to a repository [docker.io/rushmith/docker]
7fbb0e1e64cb: Pushed
33f1a94ed7fc: Pushed
b27287a6dbce: Pushed
47c2386f248c: Pushed
2be95f0d8a0c: Pushed
2df9b8def18a: Pushed
latest: digest:
sha256:4d749d86b4a2d9304a50df474f6236140dc2d169b9aabc354cdbc6ac107390f2 size: 1569
次の手順を実行できます。
ステップ1:docker login -u <username> -p <password>
「Login Succeeded」というメッセージが表示され、ログインが成功したことを確認します。
ステップ2:画像をプッシュするには、使用しているパスのタグにユーザー名が含まれていることを確認してください。
例:リンクが"hub.docker.com/u/xyz/"の場合、イメージにタグを作成しますdocker Push xyz/docker:latest。
すでにいくつかの異なるタグがある場合は、コマンドを使用して変更します
docker tag <old tag> <new tag>
お役に立てれば。
Webサイトからリポジトリを作成します。
リポジトリを作成する権限がない可能性があります。