17

このチュートリアルを使用して、docker コンテナーを Google コンテナー レジストリにプッシュしようとしましたが、実行すると

gcloud docker push b.gcr.io/my-bucket/image-name

エラーが発生します:

The push refers to a repository [b.gcr.io/my-bucket/my-image] (len: 1)
Sending image list
Error: Status 403 trying to push repository my-bucket/my-image: "Access denied."

これ以上の説明を見つけることができず (-D、--debug、--verbose 引数が認識されませんでした)、両方のサービスに接続しているgcloud auth listdocker info教えてくれました。

私が欠けているものはありますか?

4

10 に答える 10

5

gsutilACL をチェックして、バケットへの書き込み権限があることを確認するために使用します。

$ gsutil acl get gs://<my-bucket>

使用しているアカウントがどのグループに属しているかを確認する必要があります (「所有者」、「編集者」、「閲覧者」など)。

編集:私は最近、これと非常によく似た問題を経験しました。@lampis が彼の投稿で言及しているように、イメージをプッシュしようとしていた VM を作成したときに、正しいアクセス許可スコープが設定されていなかったためです。残念ながら、VM が作成された後にスコープを変更する方法は現在ありません。そのため、VM を削除し (ディスクが自動削除に設定されていることを確認してください!)、正しいスコープで VM を再作成する必要があります ('compute-rw' 、「storage-rw」で十分なようです)。時間はかかりませんが ;-)。

--scopesここのセクションを参照してください: https://cloud.google.com/sdk/gcloud/reference/compute/instances/create

于 2015-07-06T09:50:46.023 に答える
4

私にとってgcloudは、行の先頭に追加するのを忘れていました(そして、どのようdockerに認証されるのか疑問に思っていました):

$ gcloud docker push <image>
于 2015-09-05T09:44:40.297 に答える