Docker updating image along when dockerfile change

2019-03-08 12:29发布

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 running sudo docker build -t nodejstest . in my project folder however, this creates a new image each time and swallows my ssd pretty soon.

Is there a way I can update an existing image when I change the dockerfile or I'm forced to create a new one each time I make changes to the file?

Sorry if it's a dumb question

标签: docker
3条回答
再贱就再见
2楼-- · 2019-03-08 13:14

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

查看更多
我欲成王,谁敢阻挡
3楼-- · 2019-03-08 13:18

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.

查看更多
Anthone
4楼-- · 2019-03-08 13:24

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

查看更多
登录 后发表回答