【问题标题】:Does Docker Hub save historical versions of images that I push to it? (Like Github does with files?)Docker Hub 会保存我推送给它的图像的历史版本吗? (就像 Github 对文件所做的那样?)
【发布时间】:2020-07-04 17:13:24
【问题描述】:
Docker Hub 是否会保存我推送到存储库的图像的历史版本?还是每次推送都会覆盖旧版本?
上下文 - 有人告诉我 Docker Hub 类似于 Github。而且我知道 Github 会跟踪我制作的每个文件的更改,并让我能够签出旧版本的文件。
但是,逻辑告诉我图像(可能)是大文件,因此存储所有历史版本是有问题的。这表明 Docker Hub 会在我每次推送到存储库时覆盖它所拥有的映像版本。所以它只有最新版本。这是真的吗?
【问题讨论】:
标签:
docker
docker-compose
dockerhub
【解决方案1】:
您可以通过使用标签对图像进行版本控制来保存历史版本。
默认情况下,当您将镜像推送到注册表时,标签设置为default,每次推送不带标签的新镜像时都会覆盖该标签。
要添加标签,请使用此命令
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
myapp 和标签1.0 的示例
docker tag myapp username/myapp:1.0
这是在发布图像时使用标签的好习惯 - 这里的语义版本控制很有帮助。
图像可能很大,但实际上图像是由层构建的,当重复某些层时,可以缓存这些层,从而减少网络流量和空间。