尝试将图像推送到 Docker Hub 上的公共存储库时,会发生此错误。我尝试过的其他注册管理机构没有任何问题。
我查看了很多网站,包括StackOverflow在内的博客,但仍然没有明确的答案。
您可以尝试按如下方式复制此问题。
如上面的屏幕截图所示,我在本地docker主机上有一个图像aspc-mvc-app
。如图所示,它有3个标签 - 1.0.5
,1.0.5.latest
和latest
。
假设我们正在尝试使用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;这是发生错误的地方。
如下面的屏幕截图所示,初始检查似乎正常,直到您收到错误被拒绝:请求访问资源被拒绝
在步骤(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
,如下所示。
答案 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)
首先您需要确保您已登录您的帐户
你需要创建一个仓库,下面是创建仓库的命令-
docker tag local-image:tagname YOUR-ACCOUNT-NAME/tagname
答案 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