当我将图像推送到Docker Hub时。。。图像是否为“a”;快照“;在所有定制中。。还是在拉/运行时再次创建?

当我将图像推送到Docker Hub时。。。图像是否为“a”;快照“;在所有定制中。。还是在拉/运行时再次创建?,docker,Docker,在这里学习Docker。。。我有一个简单的问题。我想不出以下几点 今天,Alice构建并将其自定义图像推送到Docker Hub: FROM alpine RUN apk add --update --no-cache mysoftware 当Alice构建映像时,mysoftware(比如版本1.0)将添加到映像中 下个星期,鲍勃将把这张图片拉出来。与此同时,mysoftware已经升级到1.1版本。bob是否获得mysoftware的更新版本。。。或者在Alice构建/推送映像时,apk

在这里学习Docker。。。我有一个简单的问题。我想不出以下几点

今天,Alice构建并将其自定义图像推送到Docker Hub:

FROM alpine

RUN apk add --update --no-cache mysoftware
当Alice构建映像时,
mysoftware
(比如版本
1.0
)将添加到映像中


下个星期,鲍勃将把这张图片拉出来。与此同时,
mysoftware
已经升级到
1.1
版本。bob是否获得mysoftware的更新版本。。。或者在Alice构建/推送映像时,
apk add mysoftware
命令被“冻结”?

当您构建映像时,docker使用的是基本映像的sha256代码,因此即使您的基本映像的标签(
alpine:latest
)将指向不同的图像-您的容器仍将使用与创建期间使用的完全相同的图像。只有docker build正在创建新映像,push and pull将仅传输先前生成的映像


如果你想更新你的图像,你必须再次执行
docker build
docker push

当你构建图像时,docker使用的是基本图像的sha256代码,所以即使你的基本图像的标签(
alpine:latest
)将指向不同的图像-您的容器仍将使用与创建期间使用的完全相同的图像。只有docker build正在创建新映像,push and pull将仅传输先前生成的映像


如果你想更新你的图像,你必须再次进行
docker build
docker push
,所以。。。没有必要指定(例如)apk add mysoftware=1.0,因为在我构建时,mysoftware正处于该版本。。。是吗?@gremo这要看情况了,如果你现在只想建立一个形象,再也不碰它了,那么是的。但是,如果您希望能够在几个月内重建映像(例如获取更新的alpine映像),并且需要安装包的确切版本,那么指定版本就很有必要了。非常感谢。所以没有必要指定(例如)apk add mysoftware=1.0,因为在我构建时,mysoftware正处于该版本。。。是吗?@gremo这要看情况了,如果你现在只想建立一个形象,再也不碰它了,那么是的。但是,如果您希望能够在几个月内重建映像(例如获取更新的alpine映像),并且需要安装包的确切版本,那么指定版本就很有必要了。非常感谢。