I\'m playing with docker by creating a Dockerfile
with some nodejs instructions. Right now, every time I make changes to the dockerfile I recreate the image by runn
Docker build support caching as long as there is no ADD
instruction. If you are actively developing and changing files, only what is after the ADD
will be rebuilt.
Since 0.6.2 (scheduled today), you can do docker build --rm .
and it will remove the temporary containers. It will keep the images though.
In order to remove the orphan images, you can check them out with docker images
, and perform a docker rmi <id>
on one of them. As of now, there is an auto-prune and all untagged images (orphans, previous builds) will be removed.
According to this best practices guide if you keep the first lines of your dockerfile the same it'll also cache them and reuse the same images for future builds
During development, it makes less sense to re-build a whole container for every commit. Later, you can automate building a Docker container with your latest code as part of your QA/deployment process.
Basically, you can choose to make a minimal container that pulls in code (using git when starting the container, or using -v /home/myuser/mynode:/home/myuser/mynode
with ENTRYPOINT to run node).
See my answer to this question:
Docker rails app and git