只用Dockerfile中的其他更改重build相同的Docker镜像
我使用Dockerfile构build一个docker镜像。 在构build镜像之后,我对Dockerfile做了一些基本的修改。 是否有可能重build只有其他更改相同的图像。 因为创build图像需要很长时间,所以我不想完全构build它。 提前致谢。
所有的docker工人都会按照你所描述的方式进行工作。
唯一需要考虑的是层依赖关系。
考虑Dockerfile
FROM something RUN cmd1 RUN cmd2 RUN cmd3 RUN cmd4
如果你改变了cmd1
那么所有的图层都将被重build,因为它们可能与cmd1
不同
如果你改变cmd4
,只有这个命令会被重build,因为它不会影响任何其他的图层。
想想哪些命令需要按照什么顺序运行 – 也许你可以通过重新排列语句来改进它。
是的,如果你标记你的docker image myimage,只需启动你的其他Dockerfile
FROM myimage
并在此之后添加更多的更改
您无法用更改重build它,您需要将永久性数据存储在卷上。
为了保存你的改变,你可以使用commit
:
https://docs.docker.com/engine/reference/commandline/commit/
从容器的更改中创build一个新的图像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
将容器的文件更改或设置提交到新映像可能会很有用。 这允许您通过运行交互式shell来debugging容器,或者将工作数据集导出到其他服务器。 一般来说,最好使用Dockerfiles来以可logging和可维护的方式pipe理你的图像。 阅读更多关于有效的图像名称和标签。
提交操作将不包含容器内安装的卷中包含的任何数据。
默认情况下,提交的容器及其进程将在图像提交时暂停。 这可以降低创build提交过程中遇到数据损坏的可能性。
- Docker Swarm经理代理节点?
- Docker Swarm节点之间的通信
- 如何正确存储和共享docker主机访问?
- docker –mount错误:ContainerSpec:“–mount”不是有效的存储库/标记
- docker集装箱之间的群集连接拒绝了一些容器
- 来自守护进程的错误响应:获取https://registry-1.docker.io/v2/:在192.168.65.1:53上拨号tcp:lookup registry-1.docker.io:没有这样的主机
- docker机:getsockopt没有路由到主机
- docker构成试图拉现有的图像
- 查找使用泊坞窗图像创build的docker容器