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