docker推送失败上传

我在Ubuntu 12.04上使用docker。 我用docker 0.7.2修改了一个我用docker 0.7.1创build的容器,当我试图将更改提交到容器时,我得到了这个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 

有任何想法吗?

我将Docker从0.7.3升级到了0.7.5,并且停止了这个错误。

也发布在Github上:现在我没有时间去阅读大量的代码,如果其中一个开发者没有阅读,我会稍后再来看看,但这似乎是一个问题或改变使用registry归档自动检测设置或正在使用的tar文件头,可能在您使用的新版本中进行了更改。

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

如果在新图层上没有太多的工作,我会从registry中取出以前的docker push,然后重新执行新的图层,然后将其推入。 您可能没有从registry中提取,而是在最后一次提交(本地)时构build了新的层,并且具有不同的头。 这可能是一个好主意,无论何时升级推动你的工作,然后升级,然后拉动并继续工作,因为这样的事情可能发生在标题和版本不同的地方。 希望有所帮助。

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