2017-05-08 136 views
8

当试图将图像推送到公共存储库码头集线器时发生此错误。我尝试过的其他注册管理机构没有任何问题。码头推送错误“拒绝:请求访问资源被拒绝”

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

您可以尝试如下复制此问题。

Image on local host

如屏幕截图所示的上方,我有本地搬运工主机上的图像aspc-mvc-app。如图所示,它有3个标签 - 1.0.5,1.0.5.latestlatest

假设我们正在尝试使用的janedoe帐户名在泊坞枢纽

每文档上Docker.io和许多其他网站推,有3个步骤来推动。

(1)登录

docker login "index.docker.io" -u janedoe -p <password> 

- >我得到Login Succeeded这是很好的!

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

3个标签,我们只是标签的latest

docker tag janedoe/aspc-mvc-app:latest janedoe/aspc-mvc-app 

- >提示符返回时没有错误。到现在为止还挺好。

(3)推

​​

- >这是其中所述错误发生。

如下面的截图所示,初步检查似乎直到你的错误否认发生罚款:请求访问资源被拒绝

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容器注册表。

由于Docker Hub非常流行,任何人都可以阐明这个秘密是什么,或者是否有任何地方有详细的文档?

更新2017年5月9日

我相当了最新的码头工人CLI和服务器版本。现在,我的cli是17.05.0-ce-rc1,服务器是17.04.0-ce,如下所示。

enter image description here

+3

什么版本的Docker?你不需要'docker login'index.docker.io''只需'docker login'。 –

+1

将docker更新到最新版本,重新启动docker服务并重试。 – BMW

+2

在所有我认为事情可能出错的地方,这是Andy Shinn建议的登录部分。我们仍然用'index.docker.io'获得'Login Succeeded'的事实令人困惑,Docker Hub应该以IMO的警告作为响应。无论如何,非常感谢安迪,问题解决了:) – SamDevx

回答

14

的解决方案是简单地改变在步骤登录的方式(1)。

docker login -u janedoe -p <password> 

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

+3

为什么没有为我工作! – rick112358

+2

此解决方案适用于我。看来,在使用默认码头注册表时,您必须省略HOST参数。 (试图明确提供“docker.io”作为主机参数是什么让我失望这个兔子洞)。 – pretzels1337

+0

如果仍然不起作用,请尝试删除文件 - “〜/ .docker/config.json”并重新启动docker服务 - “service docker restart”。现在重新登录如上所述省略docker-hub url。 –

5

我也有同样的问题,但尝试一些组合后,这工作。

无论何时您推送 - 即指docker.io/后跟注册表路径。

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

我的链接是:“hub.docker.com/r/rushmith/docker/”

现在我创造我的图像标签,我想为推动:rushmith /泊坞窗

它工作成功。

$搬运工登录-u rushmith

(给那么密码键入如下)

$搬运工推rushmith /泊坞窗:最新

输出:

推送指的是一个仓库[docker。IO/rushmith /搬运工]

7fbb0e1e64cb:推

33f1a94ed7fc:推

b27287a6dbce:推

47c2386f248c:推

2be95f0d8a0c:推

2df9b8def18a:推

最新:摘要:

SHA256:4d749d86b4a2d9304a50df474f6236140dc2d169b9aabc354cdbc6ac107390f2尺寸:1569

1

你可以按照下面的步骤:

第1步:docker login -u <username> -p <password>

与消息 “登录成功” 的出现,证明您的成功登录。

第2步: 现在,为了推动图像只是确保纳入标签,它使用的是必须有你的用户名的路径。

e.g:假设链接是:“hub.docker.com/u/xyz/”搬运工推XYZ /泊坞窗创建一个标签图像:最新

如果你已经拥有了它使用命令

docker tag <old tag> <new tag> 

希望这有助于一些不同的标签变化。

10

1)首先在终端输入sudo docker login登录。输入用户名和密码

2)访问您的码头帐户并创建一个新的存储库。在我来说,我创建了一个信息库zawad1879/dockerhub

3)如果你有仓库名码头工人形象:zawad/Django的和标签:最新

在这种情况下,您需要为您的愿望标签贴上此图片。我决定给它贴上标签:myfirstimagepush。您可以通过键入命令

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

4标记的图像)使用命令

sudo docker push zawad1879/dockerhub:firstimagepush

这是所有有给它的图像最后推到你的回购协议。

+0

你不应该使用sudo –

0

从网站创建存储库。

有可能您没有创建存储库的权限。

-1

我有同样的问题,它通过与sudo运行push命令解决。我认为这只是一个特权问题。

sudo docker push janedoe/aspc-mvc-app