将docker映像推送到新docker hub帐户失败
我需要更改我将图像推送到的Docker Hub帐户。我使用将docker映像推送到新docker hub帐户失败,docker,dockerhub,Docker,Dockerhub,我需要更改我将图像推送到的Docker Hub帐户。我使用docker login来更新我的.dockercfg文件,然后运行以下(帐户,图像,和标记作为我实际值的通用占位符): docker推送帐户/图像:标记 我立即发现以下错误: 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 rep
docker login
来更新我的.dockercfg
文件,然后运行以下(帐户
,图像
,和标记
作为我实际值的通用占位符):
docker推送帐户/图像:标记
我立即发现以下错误:
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
推送引用存储库[帐户/图像](len:1)
发送图像列表
2014/12/11 21:26:59错误:状态400尝试推送存储库回购/映像:
“拒绝访问:是私有映像”docker推送帐户/映像:标记
返回退出代码1操作docker推送回购/图像:标记失败
我试图推送到docker hub上的一个私有存储库,但我已经仔细检查了我的auth是否匹配。为什么会出现这种故障?我该如何修复它?我仍然不完全理解为什么会发生这种情况,但我找到了解决方法。我销毁了本地机器上的所有图像和容器,并重建了图像。在我做到这一点之后,我就能够进入新的账户 我的理论是,我最初创建的Docker映像依赖于以前版本中存在的层,并且旧帐户可用。一旦我切换到新帐户,我试图推送一个依赖于Docker Hub中不再存在的层的图像,导致该层找不到,这导致Docker Hub认为我试图访问的东西必须是私有的,而实际上它并不存在
以上所有这些都是纯粹的猜测,因此我很高兴能得到在这方面有更多知识和/或经验的人的启发。我也经历过同样的问题,原因是一个私人的家长形象。如上所述,您的图像构建在基础图像和大多数情况下的父图像之上。当您尝试将最新更改推送到docker hub时,您的帐户应该可以访问所有父映像,否则会导致此错误。在我的例子中,我尝试推送的用户无法访问我用作基础的图像 您可以通过散列很容易地识别私有图像
docker images -a | grep <hash>
docker图像-a | grep
如果您有权访问专用存储库,则可以通过将要推送的用户添加到协作者列表来解决此问题。
但是,如果不这样做,则必须为用户标记私有存储库,并手动应用其余更改
希望这有帮助;) 我刚才也遇到了同样的问题。在我的例子中,我的Dockerfile中有一条指令“FROM ubuntu:latest”。在本例中,我使用我的旧帐户创建了图像,为此,我下载了ubuntu:latest来创建它,但这次下载是使用我以前的帐户完成的,因此,我只是从我的计算机中删除了ubuntu:latest(这是使用的基本图像),然后再次创建了我的图像。在这之后,我能够推广我的形象。我也遇到了这个问题,布鲁诺的评论似乎解决了这个问题。下面是一个用于删除图像的快速bash注释(假设您有DockerFile和自动化来重新创建它们):
docker images | awk{print$3}| xargs docker rmi-f发生这种情况时,我正在使用最新的docker,从ubuntu构建:trusty。 删除所有图像没有帮助。我将父图像标签从trusty更改为旧的trusty-20150630