Docker文件更改时Docker更新映像


72

我正在通过创建Dockerfile带有一些nodejs指令的Docker进行游戏。现在,每次更改dockerfile时,我都会通过sudo docker build -t nodejstest .在项目文件夹中运行来重新创建映像,但这每次都会创建一个新映像,并很快吞没我的ssd。

更改dockerfile时,是否有一种方法可以更新现有映像,或者每次更改文件时都被迫创建一个新映像?

抱歉,这是一个愚蠢的问题


根本不是一个愚蠢的问题。
周先生

Answers:


54

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

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

为了删除孤立图像,您可以使用检出孤立图像docker images,然后docker rmi <id>对其中一个进行操作。截至目前,该软件已经过自动修剪,所有未加标签的图像(孤立图像,以前的版本)将被删除。


2
警告:不建议使用-rm,它将很快由--rm代替。
2015年

3
这个答案应该用--rm; 它仍然是“ docker update image” google搜索的最佳答案之一。
Andrew Sannier '16


1

在开发过程中,为每次提交重建整个容器的意义较小。稍后,您可以在质量检查/部署过程中使用最新的代码自动构建Docker容器。

基本上,您可以选择制作一个最小的容器来插入代码(启动容器时使用git,或-v /home/myuser/mynode:/home/myuser/mynode与ENTRYPOINT一起使用以运行节点)。

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

Docker Rails应用程序和git

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.