当dockerfile更改时Docker更新映像

时间:2013-09-14 16:54:13

标签: docker

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

有没有办法在更改dockerfile时更新现有图像,或者每次更改文件时都被迫创建一个新图像?

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

3 个答案:

答案 0 :(得分:44)

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

从0.6.2(今天安排)开始,您可以执行docker build --rm .,它将删除临时容器。它会保留图像。

要删除孤立图像,您可以使用docker images检查它们,并对其中一个执行docker rmi <id>。截至目前,有一个自动修剪和所有未标记的图像(孤儿,以前的版本)将被删除。

答案 1 :(得分:15)

根据这个best practices guide,如果你保持dockerfile的第一行相同,它也会缓存它们并为将来的构建重用相同的图像

答案 2 :(得分:1)

在开发期间,为每次提交重新构建整个容器没有多大意义。稍后,您可以使用最新代码自动构建Docker容器,作为QA /部署过程的一部分。

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

请参阅我对这个问题的回答:

Docker rails app and git