每次进行更改时,Docker Hub是否需要上传整个图像?

Jik*_*ose 6 docker

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

  1. 拉下一张名为: docker/whalesay
  2. 建立另一个图像与一些小的变化.
  3. 将其以不同的名称推送回我的公共存储库(必须上传与我下载的大小相同的大小).
  4. 然后我用这个公共图像作为起点构建了另一个图像.
  5. 只有一个命令.但我又要把整个图像上传回来了.

我的问题是,Docker不应该只上传更改吗?我在某处读到了它.好像我犯了一些愚蠢的错误,我无法相信我们必须在每次微小的变化后上传整个图像.我错过了什么吗?

这是Dockerfile我用来构建图像fishsay:

FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay
Run Code Online (Sandbox Code Playgroud)

鲸鱼图像大约180 MB; 所以,当我推不应该,我只需要上传更改的图层?

ask*_*skb 1

当您调用docker push. 这可能是一个小而琐碎的事情,例如在图像中包含一个新包(例如:vi)。但是,这将导致创建新图层并替换现有图层,从而导致图层 ID 与注册表中已有的图层 ID 不同。docker push 将创建的所有新图层上传到注册表中,不包括基础映像。