我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
当前回答
推送所有标签
使用-a来推。S.t. docker push username/image -a
拒绝访问可能是由于docker存储库权限不是公共的(你可以再次检查)
你需要拉一下看看是否可以。
在hub.docker.com中查看
打开“标签”查看成功推送后所有可用的标签
其他回答
我的问题是在我的图像名称中使用无效字符(额外的/):
myusername/something/image
无效的映像名称。/上的用户名都尝试dangillmor something-image。希望这能帮助到一些人。
在使用Gitlab注册表时,我还遇到了这个错误消息。不同之处在于,我试图从以前的构建中更改映像的名称。这里的问题是,推送图像的注册表不存在,因为图像的新名称与我组中的任何项目都不匹配。
TLDR:在Gitlab中,映像名称必须与项目名称匹配。
OS: Ubuntu16.04
原因:我删除了客户端配置文件(~/.docker/config.json)
解决方案:
重启码头工人。 服务docker重启。 它需要输入登录信息,然后自动生成配置文件。 Docker login——username=yourdockerhubername——email=youremail@company.com
还需要注意的重要一点是,在标记图像时,首先使用命名空间标记,然后使用存储库/ mydevrepo标记。这让我在使用Docker文档时感到困惑。之后我使用:
docker login
然后我使用“tagged name”来推送我的图像。
docker push {namespace}/mydevrepo
所以,如果这对任何人有帮助的话… 我有同样的问题,这是我的问题和修复是什么。 我的测试网络上有一台名为“galaxy”的计算机。 我使用以下运行命令设置docker注册表:
sudo docker run -d
--restart=always \
--name registry \
-v /srv/registry/certs:/certs \
-v /srv/registry/storage:/var/lib/registry \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/galaxy.cert \
-e REGISTRY_HTTP_TLS_KEY=/certs/galaxy.key \
-p 443:443 \
registry:2
然后我试图从网络上的笔记本电脑推送图像到银河系,所以我这样做了:
docker login galaxy
这将给我一个错误,它会说:
Login did not succeed, error: Error response from daemon:
Get https://galaxy/v2/: x509: certificate signed by unknown authority
奇怪的是,解决这个问题的方法是这样登录:
docker login galaxy:443
这导致了一次成功的登录。 然后我试着把图片从我的笔记本电脑推到“银河”。 我已经为我的图像创建了一个标签,看起来像这样:
galaxy/myImage:0.0.1
所以我试着这样推它:
docker push galaxy/myImage:0.0.1
我得到的回答是:
The push refers to repository [docker.io/galaxy/myImage]
7ab460574f86: Preparing
1aecaf56754d: Preparing
1df1b5f06ca4: Preparing
denied: requested access to the resource is denied
奇怪的是,我发现解决这个问题的方法是首先将图像标记如下:
docker tag myImage:0.0.1 galaxy:443/myImage:0.0.1
... 然后像这样推:
docker push galaxy:443/myImage:0.0.1
因此,出于某种原因,我不得不将端口作为存储库名称的必要部分包含在标记中。
希望这能帮助到其他人。