将容器的文件更改或设置提交到新映像中会很有用。这允许您通过运行交互式shell来调试容器,或将工作数据集导出到另一个服务器。
我可以在现有容器上运行交互式shell,而无需使用docker container commit
创建新图像。
此外,如果我们希望单独的容器不会破坏现有容器中的任何内容,我们可以根据映像运行另一个容器。
那么,docker container commit
如何帮助我调试容器?
你可能不应该使用docker commit
。
曾几何时Docker没有docker exec
。你唯一能做的就是给docker run
一个新的容器。通常你会想要设置,以便docker build
为你设置一切,并调试你可能docker run --rm -it myimage sh
的东西,但如果在运行时真的变得不稳定,在没有exec
的情况下,你能做的最好的就是提交当前状态然后在生成的图像上运行一个带有交互式shell的新容器。
如今,正如你所说,docker exec
是一个更好的实时调试工具。 (它不是您使用容器的主要方式。)如果您需要图像,docker build
和Dockerfile
系统是一种更可重现的构建图像的方法。