我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
当前回答
使用以下命令:
$ docker login
<enter user name and password for Docker Hub Repository>
$ docker tag first-image {docker-hub-username}/{default-repo-folder-name}:first-image
$ docker push {docker-hub-username}/{default-repo-folder-name}:first-image
例如,我有像manjeet86/docker-repo这样的公共存储库,所以命令将是:
$ docker tag first-image manjeet86/docker-repo:first-image
$ docker push manjeet86/docker-repo:first-image
你看:而不是/这就是窍门。这对我很管用。我不知道它是否让你用/来代替:,但这可能是出于其他目的。
https://docs.docker.com/engine/reference/commandline/tag/#examples
其他回答
简单的工作解决方案:
访问这里https://hub.docker.com/创建一个私有存储库,例如johnsmith/ PRIVATE -repository,这是您在构建映像时将用于映像的name / repository。
首先,docker登录 其次,我使用"docker build -t johnsmith/private-repository:01 ."来创建图像,并且我使用"docker images"来确认创建的图像,如下面这个黄色框中所示:(对不起,我不能粘贴表格格式,只能粘贴文本字符串)
johnsmith/private-repository(REPOSITORY) 01(TAD) c5f4a2861d6e(IMAGE ID) 2 days ago(CREATED) 305MB(SIZE)
第三,我使用docker push johnsmith/private-repository:01
完成了!
我很慢地添加另一个答案,但接受的答案和其余的答案提到docker登录缺少一个边缘情况,以解决其他人在评论中陈述的问题。
docker login <private-repo-host>:<port>
强调需要进入的端口可能是那些仍在寻找的解决方案。docker login或docker login <private-repo-host>可能连接没有问题,但当需要推送图像时,你会得到与OP相同的错误。
也就是说,你可以连接w/o定义主机或端口,仍然得到:
... 登录成功
在我的例子中,我使用一个自托管的GitLab内置docker-registry,它被设置为使用端口4567。验证必须从哪个端口访问注册表可能有点冒险。没有指定端口docker login <our.gitlab。主机>将成功登录,但给出了OP询问的相同问题:
... 推送指的是存储库[…] Denied:禁止访问
如果你使用docker。Io /dockerhub你可能不会遇到这个问题,但是如果你有一个自托管/私有注册表解决方案,那么你需要显式地使用docker注册表的主机和端口登录的可能性就会增加。
我也有这个问题。事实证明,我使用的是免费层,并试图在私有存储库中推送多个图像。将一张图片设为私有,其余的设为公共,这对我来说很管用。
从应用程序登录。我一直在尝试从终端没有运气。
这是版本17.06.1
在使用Gitlab注册表时,我还遇到了这个错误消息。不同之处在于,我试图从以前的构建中更改映像的名称。这里的问题是,推送图像的注册表不存在,因为图像的新名称与我组中的任何项目都不匹配。
TLDR:在Gitlab中,映像名称必须与项目名称匹配。