web-dev-qa-db-ja.com

ドッカープッシュエラー「拒否:リソースへの要求されたアクセスが拒否されました」

このエラーは、Docker Hubのパブリックリポジトリにイメージをプッシュしようとすると発生します。私が試した他のレジストリに問題はありませんでした。

StackOverflowを含む多数のサイト、ブログを見てきましたが、まだ明確な答えはありません。

この問題を次のように再現できます。

Image on local Host

上記のスクリーンショットに示すように、画像aspc-mvc-appローカルドッカーホスト。示されているように、3つのタグがあります-1.0.51.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:リソースへの要求されたアクセスが拒否されるまで、初期チェックは正常に行われているようです

enter image description here

ステップ(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以下に示すように。

enter image description here

14
SamDevx

解決策は、手順(1)でのログイン方法を変更することです。

docker login -u janedoe -p <password>

他のすべては上記の方法を維持できます。イメージがDocker Hubに正常にプッシュされました!

19
SamDevx

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

これですべてです。

12
Niamat Zawad

私も同じ問題を抱えていましたが、いくつかの組み合わせを試した後、これはうまくいきました。

プッシュするたびに-これは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
6
Nikhil Rushmith

次の手順を実行できます。

ステップ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>

お役に立てれば。

1

Webサイトからリポジトリを作成します。

リポジトリを作成する権限がない可能性があります。

0
loopzilla