【问题标题】:Pushing docker image to new docker hub account fails将 docker 映像推送到新的 docker hub 帐户失败
【发布时间】:2014-12-12 19:16:45
【问题描述】:

我需要更改将图像推送到的 Docker Hub 帐户。我使用docker login 更新我的.dockercfg 文件,然后运行以下命令(accountimagetag 充当我的实际值的通用占位符):

docker push account/image:tag

我立即收到以下错误:

The push refers to a repository [account/image] (len: 1)
Sending image list
2014/12/11 21:26:59 Error: Status 400 trying to push repository repo/image:
"Access denied: <hash> is a private image" docker push account/image:tag
returned exit code 1action docker push repo/image:tag failed

我正在尝试推送到 docker hub 上的私有存储库,但我已经仔细检查了我的身份验证是否匹配。为什么会失败,我该如何解决?

【问题讨论】:

    标签: docker dockerhub


    【解决方案1】:

    我仍然不完全明白为什么会发生这种情况,但我想出了如何解决它。我销毁了本地机器上的所有图像和容器并重建了图像。完成后,我可以推送到新帐户。

    我的理论是,我最初创建的 Docker 映像依赖于以前构建中存在的层,并且旧帐户可用。切换到新帐户后,我试图推送依赖于 Docker Hub 中不再存在的层的图像,导致找不到该层,这导致 Docker Hub 认为我试图访问的东西必须是私有的,而它实际上并不存在。

    以上所有内容几乎都是纯粹的猜想,因此我很高兴能得到在该领域具有更多知识和/或经验的人的启发。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,原因是私有父图像。正如here 解释的那样,您的图像构建在基础图像之上,在大多数情况下是父图像。当您尝试将最新更改推送到 docker hub 时,您的帐户应该可以访问所有父图像,否则会导致此错误。在我的情况下,我尝试推送的用户无权访问我用作基础的图像。

      您可以通过哈希轻松识别私有图像。

      docker images -a | grep <hash>
      

      如果您有权访问私有存储库,则可以通过将您推送的用户添加到协作者列表来解决此问题。 但是,如果您不这样做,则必须为您的用户标记私有存储库并手动应用其余更改。

      希望这会有所帮助;)

      【讨论】:

        【解决方案3】:

        我刚刚在这里遇到了同样的问题。就我而言,我的 Dockerfile 中有指令“FROM ubuntu:latest”。在这种情况下,我使用我的旧帐户构建了映像,为此,我下载了 ubuntu:latest 来创建它,但是这个下载是使用我以前的帐户完成的,所以,我只是删除了 ubuntu:latest(那是使用的基本图像)从我的计算机中重新构建我的图像。之后,我就可以推送我的图片了。

        【讨论】:

          【解决方案4】:

          我也遇到了这个问题,布鲁诺的评论似乎解决了这个问题。这是删除图像的快速 bash 注释(假设您有 DockerFiles 和自动化来重新创建它们): 码头工人图片 | awk '{打印 $3}' | xargs docker rmi -f

          【讨论】:

            【解决方案5】:

            发生这种情况时,我正在使用最新的 Docker,从 ubuntu:trusty 构建。 删除所有图像没有帮助。我将父图像标签从 trusty 更改为较旧的 trusty-20150630。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2015-05-21
              • 1970-01-01
              • 2015-12-17
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多