docker push error"被拒绝:请求访问资源被拒绝"

Sam*_*evx 15 docker dockerhub docker-registry

尝试将映像推送到Docker Hub上的公用存储库时,会发生此错误.我尝试过的其他注册管理机构没有任何问题.

我查看了很多网站,包括StackOverflow在内的博客,但仍然没有明确的答案.

您可以尝试按如下方式复制此问题.

本地主机上的图像

如上面的屏幕截图所示,我aspc-mvc-app在本地docker主机上有一个图像.如图所示,它有3个标签- 1.0.5,1.0.5.latestlatest.

假设我们正在尝试使用janedoeDocker Hub 的帐户名称

根据Docker.io和许多其他网站的文档,推送有3个步骤.

(1)登录

docker login "index.docker.io" -u janedoe -p <password>
Run Code Online (Sandbox Code Playgroud)

- >我觉得Login Succeeded哪个好!

(2)添加一个或多个标签

在3个标签中,让我们只标记latest.

docker tag janedoe/aspc-mvc-app:latest janedoe/aspc-mvc-app
Run Code Online (Sandbox Code Playgroud)

- >提示返回,没有错误.到现在为止还挺好.

(3)推

docker push janedoe/aspc-mvc-app
Run Code Online (Sandbox Code Playgroud)

- >这是发生错误的地方.

如下面的屏幕截图所示,初始检查似乎正常,直到您收到错误消息:拒绝请求访问资源

在此输入图像描述

在步骤(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
Run Code Online (Sandbox Code Playgroud)

所有失败都有同样的错误.

作为对比,使用相同的图像,我没有问题推送到Azure容器注册表.

由于Docker Hub如此受欢迎,任何人都可以了解这个谜团是什么,或者是否有任何详细的文档?

2017年5月9日更新

我对docker cli和服务器版本了如指掌.现在,我的cli 17.05.0-ce-rc1和服务器17.04.0-ce如下所示.

在此输入图像描述

Sam*_*evx 19

解决方案只是改变步骤(1)中的登录方式.

docker login -u janedoe -p <password>
Run Code Online (Sandbox Code Playgroud)

其他一切都可以保持上述方式.图像已成功推送到Docker Hub!

  • 这可行,但这太愚蠢了,这实际上浪费了我生命中的 4 个小时。 (4认同)
  • 这个解决方案对我有用.看来,当使用默认的docker注册表时,必须省略HOST参数.(试图明确地提供"docker.io"作为HOST参数,这就是让我陷入这个兔子洞的原因). (3认同)
  • 使用 --password-stdin 而不是 -p 更安全 (3认同)

Nia*_*wad 12

1)首先通过键入sudo docker login终端登录.输入用户名和密码

2)访问您的docker帐户并创建一个新的存储库.在我的情况下,我创建了一个存储库zawad1879/dockerhub

3)假设您有一个具有存储库名称的docker镜像:zawad/django和tag:latest.

在这种情况下,您需要使用您希望的标签来标记此图像.我决定用标签:myfirstimagepush标记它.您可以通过键入命令来标记图像

sudo docker tag zawad/django:latest zawad1879/dockerhub:firstimagepush

4)最后使用命令将图像推送到您的仓库

sudo docker push zawad1879/dockerhub:firstimagepush

这里的所有都是它的.

  • 你不应该使用 sudo (2认同)

Tra*_*nVo 11

我希望这个迟到的解决方案可以帮助某人。出现此错误消息的原因是您没有正确命名图像。假设您在 docker.io 上的帐户名称是,your-name那么您的新存储库名称将是your-name/your-new-image-name

为了推送您的图像,首先您必须将本地图像标记(命名)为:

docker tag local-image[:tag-name] your-name/your-new-image-name[:tag-name]
Run Code Online (Sandbox Code Playgroud)

括号里的东西是可选的。您可能想使用 检查结果docker image ls。然后将您的镜像推送到您的 docker 存储库:

docker push your-name/your-new-image-name[:tag-name]
Run Code Online (Sandbox Code Playgroud)

完毕!您的镜像已推送到 docker 存储库。


小智 6

我也有同样的问题,但在尝试了一些组合之后,这个问题很有效.

每当你推 - 这指的是docker.io/后跟注册表路径.

在我的情况,我的用户名是rushmith,我创建了一个名为样本库泊坞窗下rushmith.

我的链接是:"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
Run Code Online (Sandbox Code Playgroud)


Rah*_*hul 5

首先您需要确保您已登录您的帐户

在此输入图像描述

您需要创建一个存储库,以下是创建存储库的命令 -

docker tag local-image:tagname您的帐户名称/tagname

docker push您的帐户名称/tagname 在此输入图像描述