Docker 当我的图像的基础图像更新时会发生什么?
我有基于Docker 当我的图像的基础图像更新时会发生什么?,docker,dockerfile,docker-build,Docker,Dockerfile,Docker Build,我有基于microsoft/aspnet:4.6.2的图像,在构建这些(我的)图像时,为了构建我自己的图像,microsoft/aspnet:4.6.2被下拉。因此,在我的本地计算机中,我有microsoft/aspnet:4.6.2图像。假设基本图像得到更新,Microsoft发现图像有一个bug,并决定修复该标记,因此它仍然被称为Microsoft/aspnet:4.6.2,但它实际上与我创建自己的图像时不同 所以我有两个问题: 1.每次我的图像被拉下来,它都会得到基本图像,就像我创建图像时
microsoft/aspnet:4.6.2
的图像,在构建这些(我的)图像时,为了构建我自己的图像,microsoft/aspnet:4.6.2
被下拉。因此,在我的本地计算机中,我有microsoft/aspnet:4.6.2
图像。假设基本图像得到更新,Microsoft发现图像有一个bug,并决定修复该标记,因此它仍然被称为Microsoft/aspnet:4.6.2
,但它实际上与我创建自己的图像时不同
所以我有两个问题:1.每次我的图像被拉下来,它都会得到基本图像,就像我创建图像时一样,对吗?(看起来很明显,但我需要检查一下)
2.如果我注意到(web钩子、触发器?)有一个较新版本的
microsoft/aspnet:4.6.2
我可以再次运行docker build
命令并将较新的映像拉下来吗?请记住,旧的基本映像在我的文件系统中(称为相同的)。Docker是否足够聪明,能够意识到我有一个较旧版本的基本映像,它会下载最新版本的映像
希望我说得很清楚你的图片,就像别人下载的一样,将永远保持不变。一个图像依赖于特定的属性来为图像提供它的SHA256校验和。修改父层将修改用于引用图像的校验和,从而成为新图像。更改该图像的唯一方法是,如果图像被标记引用,并且本地标记发生更改,可以手动更改,也可以再次拖动图像标记 默认情况下,
docker build
将首先使用本地映像。您需要运行docker build--pull
,分别运行docker pull
或docker rmi IMAGE
,以便生成使用最新标记的图像
生成服务具有在中心中更新任何指定映像时自动重建的功能 有人下载的图像将始终保持不变。一个图像依赖于特定的属性来为图像提供它的SHA256校验和。修改父层将修改用于引用图像的校验和,从而成为新图像。更改该图像的唯一方法是,如果图像被标记引用,并且本地标记发生更改,可以手动更改,也可以再次拖动图像标记 默认情况下,
docker build
将首先使用本地映像。您需要运行docker build--pull
,分别运行docker pull
或docker rmi IMAGE
,以便生成使用最新标记的图像
生成服务具有在中心中更新任何指定映像时自动重建的功能
图像ID
,而不是名称来引用基本图像)docker build
中有一个--pull
开关)图像ID
,而不是名称来引用基本图像)docker build
中有一个--pull
开关)如果您需要最新发布的基本映像,请在docker生成期间使用-no cache选项,否则docker将始终使用本地可用的映像,除非您在docker生成后进行清理。如果您需要最新发布的基本映像,请在docker生成期间使用-no cache选项,否则docker将始终使用本地可用的映像,除非您在docker构建后进行清理修复一个bug并使用相同的
标签发布新的图像
将是一件坏事。这并不能保证行为的重现性。您可能需要查看和(关于最新的
标记)。修复错误并使用相同的标记发布新的图像
将是一件坏事。这并不能保证行为的重现性。您可能需要查看和(关于最新的标记)。--无缓存或--拉取之间有什么区别?医生不清楚他们几乎一模一样。与无缓存相比,IIRC pull存在打开错误。--no cache
或--pull
之间有什么区别?医生不清楚他们几乎一模一样。与没有缓存相比,IIRC pull有打开的bug。