我使用Dockerfile构建一个docker镜像。构建映像后,我对Dockerfile进行了一些基本的更改。是否可以仅使用其他更改重建相同的图像。因为创建图像需要很长时间,所以我不想完全构建它。提前谢谢。
答案 0 :(得分:5)
所有的docker构建都以您描述的方式工作。
唯一需要考虑的是图层依赖性。
考虑Dockerfile
FROM something
RUN cmd1
RUN cmd2
RUN cmd3
RUN cmd4
如果您更改cmd1
,则会重建所有图层,因为它们可能与cmd1
相同
如果您更改cmd4
,则只会重建此命令,因为它不会影响任何其他图层。
考虑哪些命令需要以什么顺序运行 - 也许你可以通过重新排序语句来改进它。
答案 1 :(得分:1)
是的,如果您标记了docker image myimage,只需使用
启动其他Dockerfile FROM myimage
并在此之后添加其他更改
答案 2 :(得分:0)
您无法使用更改重建它,您需要在卷上存储持久数据。
但是,要保存更改,您可以使用commit
:
https://docs.docker.com/engine/reference/commandline/commit/
根据容器的更改创建新图片
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
提交容器的文件更改或设置会很有用 新图像。这允许您通过运行调试容器 交互式shell,或将工作数据集导出到另一台服务器。 通常,最好使用Dockerfiles来管理图像 记录和维护的方式。 Read more about valid image names and tags.
提交操作不包含卷中包含的任何数据 安装在容器内。
默认情况下,正在提交的容器及其进程将是 提交图像时暂停。这降低了可能性 在创建过程中遇到数据损坏 提交。