我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
当前回答
我在上码头工人初级课程时也遇到了同样的问题。我通过在docker push调用之前进行adocker登录来解决这个问题。
其他回答
我也有同样的问题。我强烈推荐大家浏览一下这个博客。
我的问题更多地与ACR有关。Docker客户端将引用配置。您的SP证书文件将存储在json文件中(角色所有者)。
博客中帮助我解决问题的部分有:
Docker镜像ls Docker标签.azurecr.io/:v1 Docker推送.azurecr.io/:v1
在此操作之前,我还创建了一个具有所有者特权的SP。
我在上码头工人初级课程时也遇到了同样的问题。我通过在docker push调用之前进行adocker登录来解决这个问题。
使用以下命令:
$ docker login
<enter user name and password for Docker Hub Repository>
$ docker tag first-image {docker-hub-username}/{default-repo-folder-name}:first-image
$ docker push {docker-hub-username}/{default-repo-folder-name}:first-image
例如,我有像manjeet86/docker-repo这样的公共存储库,所以命令将是:
$ docker tag first-image manjeet86/docker-repo:first-image
$ docker push manjeet86/docker-repo:first-image
你看:而不是/这就是窍门。这对我很管用。我不知道它是否让你用/来代替:,但这可能是出于其他目的。
https://docs.docker.com/engine/reference/commandline/tag/#examples
是的,也许有些尴尬,但似乎根本没有关于这个问题的明确文档:我刚刚用私有存储库注册了Docker Pro。我创建了一个私有存储库,然后尝试向其推送。收到了可怕的“拒绝”消息。
推送到我的公共回购很正常,所以我知道我是正确登录的。
在尝试了之前30个答案中与Docker Hub相关的所有内容后…我终于明白了私人回购是如何运作的:它们与公共回购相同,但多了一个步骤。
当推送到存储库- Docker Hub帐户内的任何存储库时,您需要用您的用户名作为image:标记的前缀,例如:
给定以下值,
用户名= yourusername 图像名称=图像 标签=标签
1)标记(或提交)本地图像,添加一个前缀与您的用户名:
docker tag theimage:thetag yourusername/theimage:thetag
注:
如果你在一个组织中,你需要双前缀的图像-像这样:
docker tag theimage:thetag yourusername/yourorganizationname/theimage:thetag
如果你的标签是最新的,:标签部分可以省略;Docker假设:latest如果你没有输入:thetag部分
2)将前缀图像推送到Docker Hub:
docker push yourusername/theimage:thetag
OR
docker push yourusername/yourorganizationname/theimage:thetag
额外的步骤:
要么
在上述第1步之前,在Docker Hub帐户中创建一个私有存储库。
注意,存储库名称必须与您计划推送的映像相同。不要在存储库名称中包含thetag部分。例如,如果你的映像是ubuntu:14.04,你可以将你的存储库命名为ubuntu。
Or
如果你没有提前创建存储库(这不是必需的!):转到Docker Hub中的帐户;点击新推出的回购,然后它的设置选项卡-并使你的回购私有。
我曾见过其他人用两个前缀标记私人回购,例如xyz/abc/theimage:thetag,我认为第二个前缀是我创建的,用于将回购标记为私有。不,这只适用于组织。删除任何第二个前缀和设置我的回购名称只是图像修复了我的拒绝错误!
另一个注意事项:每个repo持有所有带有给定repo名称的标记版本的图像。例如,ubuntu:latest和ubuntu:14.04都将在ubuntu repo中。
有趣的Docker!
如果在docker登录后仍然失败,请确保您试图推送到的存储库在一开始就已创建。