Docker更新镜像时dockerfile更改

我正在通过创buildDockerfile和一些nodejs指令来玩docker。 现在,每次我对dockerfile进行更改时,都会通过运行sudo docker build -t nodejstest .重新创build映像sudo docker build -t nodejstest . 但是在我的项目文件夹中,每次都会创build一个新的图像,并很快吞下我的ssd。

有没有一种方法可以在更改dockerfile时更新现有图像,或者每次更改文件时都强制创build新图像?

对不起,如果这是一个愚蠢的问题

只要没有ADD指令,Docker就构build支持caching。 如果您正在积极开发和更改文件文件,则只会在ADD之后重build。

由于0.6.2(今天计划),你可以做docker build --rm . 它将移除临时容器。 它会保持图像。

为了删除孤立的图像,你可以检查他们与docker images ,并执行一个docker rmi <id>其中之一。 截至目前,有一个自动修剪,所有未标记的图像(孤儿,以前的版本)将被删除。

根据这个最佳实践指南,如果你保持你的dockerfile的第一行相同,它也会caching它们,并重复使用相同的图像为未来的版本

在开发过程中,为每次提交重新构build整个容器是没有意义的。 稍后,可以使用最新的代码自动构buildDocker容器,作为QA /部署过程的一部分。

基本上,你可以select创build一个最小的容器来引入代码(启动容器时使用git,或者使用带有ENTRYPOINT的-v /home/myuser/mynode:/home/myuser/mynode mynode来运行节点)。

看到我对这个问题的回答:

Docker rails应用程序和git