Docker提交现有图像

vij*_*pal 8 docker-image docker-container

每次发出commit命令时,Docker commit都会创建一个新映像.是否可以在当前运行的容器上发出提交,并将更改保存到现有图像((此处的现有图像是生成容器的图像)).这样,每次执行提交时都不会创建新映像.

如果可能,请告诉我?

hur*_*urk 11

使用名称和标签已经更新了所需的图像.确保在提交期间在容器ID之后放置相同图像的名称.来自doc:

$ docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS              NAMES
c3f279d17e0a        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours                            desperate_dubinsky
197387f1b436        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours                            focused_hamilton

$ docker commit c3f279d17e0a  svendowideit/testimage:version3
Run Code Online (Sandbox Code Playgroud)

编辑:我强烈建议你在继续之前停止容器,这样你就可以减少进入下一次运行状态的机会.此外,使用不同的标签,测试它,然后重新标记到您的真实目标可能是个好主意.

编辑2:正如@MilindDeore指出的那样,这不会在物理上覆盖以前的图像,而是重新解析名称.因此,您可能必须手动删除或等待它被垃圾收集(如果到位).


Mil*_*ore 7

Docker 镜像是不可变的,位于文档下方:

Docker 映像是只读的。当 Docker 从镜像运行容器时,它会在应用程序运行所在的镜像(使用 UnionFS)之上添加一个读写层。

因此,@hurturk 给出的建议将创建一个新图像,而不是问题中提出的问题。