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

时间:2017-05-08 22:47:10

标签: docker docker-registry dockerhub

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

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

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

Image on local host

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

假设我们正在尝试使用Docker Hub中的janedoe帐户名

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

(1)登录

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

- &GT;我得到Login Succeeded这很好!

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

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

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

- &GT;提示返回,没有错误。到目前为止一切都很好。

(3)按

docker push janedoe/aspc-mvc-app

- &GT;这是发生错误的地方。

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

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日更新

我对docker cli和服务器版本的了解最新。现在,我的cli是17.05.0-ce-rc1,服务器是17.04.0-ce,如下所示。

enter image description here

10 个答案:

答案 0 :(得分:19)

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

docker login -u janedoe -p <password>

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

答案 1 :(得分:12)

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

2)访问您的docker帐户并创建一个新的存储库。就我而言,我创建了一个存储库 zawad1879 / dockerhub

3)假设您有一个具有存储库名称的docker镜像: zawad / django 和标记:最新

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

来标记图像

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

4)最后使用命令

将图像推送到您的仓库

sudo docker push zawad1879/dockerhub:firstimagepush

这就是它的全部内容。

答案 2 :(得分:5)

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

无论何时推送 - 指向 docker.io / ,然后是注册表路径。

在我的情况下,我的用户名是 rushmith ,我在rushmith下创建了一个名为 docker 的示例存储库。

我的链接是:&#34; hub.docker.com/r/rushmith/docker /&#34;

现在我为我想要推送的图像创建了一个标签: 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

答案 3 :(得分:1)

您可以按照以下步骤操作:

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

将显示“登录成功”的消息,确认您已成功登录。

第2步: 现在,为了推送图像,请确保您使用的路径必须在标记中包含您的用户名。

例如:假设链接是:“hub.docker.com/u/xyz /” 创建一个标记为 docker push xyz / docker:latest

如果您已经使用命令

更改了一些标签
docker tag <old tag> <new tag>

希望这有帮助。

答案 4 :(得分:1)

经过 1 小时的上述不同方式的挣扎, 我在我的mbp中重新安装了最新版本的Docker Desktop应用程序,然后就解决了。

最新版本是20.10.2 而旧版本是17.x,5年前安装的。

答案 5 :(得分:0)

从网站创建存储库。

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

答案 6 :(得分:0)

docker push 不会创建存储库名称,因此如果不存在,则表示访问不可用

答案 7 :(得分:0)

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

enter image description here

你需要创建一个仓库,下面是创建仓库的命令-

docker tag local-image:tagname YOUR-ACCOUNT-NAME/tagname

docker push 你的账户名/tagname enter image description here

答案 8 :(得分:0)

这对我有用。

> docker login -u janedoe
Password:
Login Succeeded 

> docker tag myapp:0.0.1 janedoe/myflinkapp:0.0.1

> docker push janedoe/myapp:0.0.1
The push refers to repository [docker.io/janedoe/myapp]
b763be657a2c: Pushed
e534dae385a8: Pushed
5af3d5d57035: Pushed
0e44828b51e2: Pushed
fdd771f27095: Pushed
ef9a7b8862f4: Pushed
a1f2f42922b1: Pushed
4762552ad7d8: Pushed
0.0.1: digest: sha256:0069ee2c39b422e64f0493d2b2e9cbe7736a size: 2154

答案 9 :(得分:-1)

我遇到了同样的问题,通过使用sudo运行push命令解决了这个问题。我认为这只是一个特权问题。

sudo docker push janedoe/aspc-mvc-app
相关问题