我可以使用 "docker commit" 提交 docker 容器的整个状态吗?
Can I commit the whole state of a docker container with "docker commit"?
示例 1
我有一个 运行ning jenkins 容器有一段时间了,安装了一堆插件。我还为我的管道配置了一些构建步骤。现在我使用 docker commit sd12418fsw mystuff/configuredjenkins:1.0
问题:
这个容器的状态会被复制到新镜像吗?因此,如果我将此映像推送到另一台服务器上的另一个注册表,并从 configuredjenkins:1.0
映像中 运行 一个容器,它将具有与我提交时相同的状态(配置和插件)?
示例 2
我有一个 运行ning ubuntu 容器。在这个容器中,我开始使用 apt-get install emacs
并开始为我的微控制器开发环境创建一些目录。因为我喜欢 Arduino 和 Emacs - 我想将两者结合起来,成为一个酷酷的黑客风格 IDE 来开发东西。我完成了,现在我的 ubuntu 容器中有一个很好的开发设置。
问题:
完成后,我很想保存此设置。 运行ning docker commit jd234hac mystuff/mymicrocontrollersetup
给我一张包含所有设置内容的图像吗?
所以答案是肯定的,也不是。您在容器内所做的任何更改都是提交的一部分。但是,如果映射了卷,则对容器所做的任何修改都不会保存为状态。
此外,当您进行更改时,docker history
不会显示这些更改的任何详细信息。这不是一件好事,因为使用此图像的人不知道在提交的这一层中做了什么。
示例 1
我有一个 运行ning jenkins 容器有一段时间了,安装了一堆插件。我还为我的管道配置了一些构建步骤。现在我使用 docker commit sd12418fsw mystuff/configuredjenkins:1.0
问题:
这个容器的状态会被复制到新镜像吗?因此,如果我将此映像推送到另一台服务器上的另一个注册表,并从 configuredjenkins:1.0
映像中 运行 一个容器,它将具有与我提交时相同的状态(配置和插件)?
示例 2
我有一个 运行ning ubuntu 容器。在这个容器中,我开始使用 apt-get install emacs
并开始为我的微控制器开发环境创建一些目录。因为我喜欢 Arduino 和 Emacs - 我想将两者结合起来,成为一个酷酷的黑客风格 IDE 来开发东西。我完成了,现在我的 ubuntu 容器中有一个很好的开发设置。
问题:
完成后,我很想保存此设置。 运行ning docker commit jd234hac mystuff/mymicrocontrollersetup
给我一张包含所有设置内容的图像吗?
所以答案是肯定的,也不是。您在容器内所做的任何更改都是提交的一部分。但是,如果映射了卷,则对容器所做的任何修改都不会保存为状态。
此外,当您进行更改时,docker history
不会显示这些更改的任何详细信息。这不是一件好事,因为使用此图像的人不知道在提交的这一层中做了什么。