我可以使用“docker commit”提交docker容器的整个状态吗?

例1

我有一个运行jenkins容器一段时间,并安装了一堆插件。 此外,我已经为我的pipe道configuration了一些构build步骤。 现在我使用docker commit sd12418fsw mystuff/configuredjenkins:1.0

题:

这个容器的状态会被复制到新的图像上吗? 所以,如果我把这个图像推到另一个服务器上的另一个registry,并运行一个容器从configuredjenkins:1.0形象,它将具有相同的状态(configuration和插件),我已经提交了?

例2

我有一个运行Ubuntu的容器。 在这个容器中,我开始使用apt-get install emacs并开始为我的微控制器开发环境创build一些目录。 因为我喜欢Arduino和Emacs – 我想结合两个酷酷的黑客风格的IDE开发的东西英寸我完成这样做,现在有一个很好的发展设置在我的Ubuntu的容器。

题:

当我完成时,我很想保存这个设置。 运行docker commit jd234hac mystuff/mymicrocontrollersetup给我一个图像,其中的所有设置的东西呢?

所以答案是肯定的,没有。 你在容器内做的任何改变都是提交的一部分。 但是如果一个卷被映射了,所有进入容器的修改都不会被保存为状态。

此外,当您进行更改时, docker history不会显示这些更改的任何详细信息。 这不是一件好事,因为使用这个图像的人不知道在这个图层上做了什么。