docker push给出上传失败

时间:2014-01-02 23:21:30

标签: docker

我在Ubuntu 12.04上使用docker。我使用docker 0.7.2修改了我用docker 0.7.1创建的容器,当我尝试将更改提交到容器时,我收到了Failed to upload错误(尝试了两次):

avilella@ubuntu64:~/src/docker$ sudo docker push avilella/basespace-playground
The push refers to a repository [avilella/basespace-playground] (len: 1)
Sending image list
Pushing repository avilella/basespace-playground (1 tags)
5c7f024259a7: Image already pushed, skipping 
[...]
04869f04a8c9: Pushing 2.601 MB/16.55 MB 2m16s
[...]
2014/01/02 23:16:54 Failed to upload layer: Put https://registry-1.docker.io/v1/images/cdf6082e5d472d18c0540c43224f4c9b8d1264a2bb3c848a5b5e5a3b00efbf1a/layer: archive/tar: invalid tar header

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

我将Docker从0.7.3升级到0.7.5并且此错误已停止。

答案 1 :(得分:0)

还发布了GITHUB ISSUE: 我现在没有时间经历很多代码,如果其中一个开发人员没有参与其中我稍后会对其进行调查,但这似乎是一个问题,或者随着注册表归档自动更改检测设置或正在使用的tar文件头,可能在您使用的新版本中已更改。

看到类似问题: http://lists.busybox.net/pipermail/busybox/2011-February/074737.html

如果您在新图层上没有做太多工作,我会从注册表中提取您之前的docker push,然后重做新的图层工作,然后按下它。您可能没有从注册表中提取,而是在最后一次提交(本地)并且具有不同标头时构建了新层。这可能是一个好主意,每当你升级为先推动你的工作,然后升级,然后拉动并继续工作,因为这样的事情可能发生在标题等版本不同的地方。希望有所帮助。

答案 2 :(得分:0)

这在今天的docker版本中得到修复(在我的情况下通过apt-get获得)。