我正在通过创建Dockerfile
带有一些nodejs指令的Docker进行游戏。现在,每次更改dockerfile时,我都会通过sudo docker build -t nodejstest .
在项目文件夹中运行来重新创建映像,但这每次都会创建一个新映像,并很快吞没我的ssd。
更改dockerfile时,是否有一种方法可以更新现有映像,或者每次更改文件时都被迫创建一个新映像?
抱歉,这是一个愚蠢的问题
我正在通过创建Dockerfile
带有一些nodejs指令的Docker进行游戏。现在,每次更改dockerfile时,我都会通过sudo docker build -t nodejstest .
在项目文件夹中运行来重新创建映像,但这每次都会创建一个新映像,并很快吞没我的ssd。
更改dockerfile时,是否有一种方法可以更新现有映像,或者每次更改文件时都被迫创建一个新映像?
抱歉,这是一个愚蠢的问题
Answers:
只要没有ADD
指令,Docker构建支持缓存。如果您正在积极开发和更改文件,则仅ADD
重建之后的内容。
从0.6.2(今天计划)开始,您可以执行此操作docker build --rm .
,它将删除临时容器。它将保留图像。
为了删除孤立图像,您可以使用检出孤立图像docker images
,然后docker rmi <id>
对其中一个进行操作。截至目前,该软件已经过自动修剪,所有未加标签的图像(孤立图像,以前的版本)将被删除。
--rm
; 它仍然是“ docker update image” google搜索的最佳答案之一。
在开发过程中,为每次提交重建整个容器的意义较小。稍后,您可以在质量检查/部署过程中使用最新的代码自动构建Docker容器。
基本上,您可以选择制作一个最小的容器来插入代码(启动容器时使用git,或-v /home/myuser/mynode:/home/myuser/mynode
与ENTRYPOINT一起使用以运行节点)。
请参阅我对这个问题的回答: