每当我做出改变时,Docker Hub是否需要上传整个映像?

我正在尝试Docker,我做了以下:

  1. docker/whalesay一个叫做: docker/whalesay
  2. 修改了一些小的变化的图像。
  3. 把它推回到我的公共仓库(不得不上传大约相同的大小,我下载)。
  4. 然后我以这个公众形象为出发点build立了另一个形象。
  5. 只有一个命令。 但是我不得不上传整个图像。

我的问题是,不是Docker应该只上传更改? 我在某处读过 看来我犯了一个愚蠢的错误,我不能相信我们必须每次上传整个图像后,每一个小的变化。 我错过了什么吗?

这是我用来构build图像fishsay

 FROM docker/whalesay:latest RUN apt-get -y update && apt-get install -y fortunes CMD /usr/games/fortune -a | cowsay 

鲸鱼的形象是〜180 MB; 所以当我推动不应该只上传更改的图层?

当您调用docker push时,图像中任何对图层的更改都需要在存储库中更新。 这可能是一个小而琐碎的事情,比如在图像中包含一个新的包(例如:vi)。 但是,这会导致创build新的图层,并replace现有的图层,从而导致不同的图层标识。 docker push上传所有创build到registry中的新图层,不包括基本图像。

我也面临同样的问题,我来到的是

https://github.com/docker/docker/issues/18866#issuecomment-192770785 https://github.com/docker/docker/issues/14018

正如上面提到的,这个特性是在Docker Engine 1.10 / Registry 2.3中实现的。

在发送邮件给docker的支持后,我收到了以下回复

你好,

不幸的是,我们没有任何时间表来更新Docker Hub,我们可以公开分享。 对不起,由此造成的麻烦。

/杰夫