恢复预先configuration的泊坞窗图像的方法

docker工人是全新的。 我有一个关于docker图像的简单问题。

假设我已经安装了某个软件/服务器的本地泊坞窗镜像。 所以现在我需要在这里设置一个检查点/快照,那么在这个检查点之后完成的所有工作都是暂时的。 这意味着在某个特定时间,我会恢复原始图像(从该检查点),并覆盖临时图像中的所有内容。

我的第一个问题是,如果上述用例是有意义的?
我的第二个问题是,如果上述情况是有道理的,那么检查点的方法是什么(简单地说,如何将检查点映像保存在本地磁盘空间中,而不涉及云存储)以及如何还原映像以覆盖需要时临时图像。

虽然我已经阅读了一些docker文档,但是仍然在概念上苦苦挣扎。

即使您可以考虑pipe理容器或卷中的数据(或安装在容器中的主机文件夹),也是有意义的。
这样,即使停止并重新启动容器,数据仍然保持不变。

做检查站的方法是什么?

如果您的容器没有安装卷,并且其中有数据,则是的,停止并删除容器将丢失该数据。

一种可能是用docker commit创build快照。
这将冻结容器状态作为一个新的形象,你可以稍后运行。

例:

 $ 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 f5283438590d $ docker images REPOSITORY TAG ID CREATED SIZE svendowideit/testimage version3 f5283438590d 16 seconds ago 335.7 MB 

据我所知,就Docker而言,没有任何像checkpoint这样的东西。 但是您可以将容器上执行的操作保存为图像以创build新的图像。

一个例子来更好地理解

让我们使用一个基本的Ubuntu镜像运行一个容器,并在容器中创build一个文件夹:

 #docker run -it ubuntu:14.04 /bin/bash root@58246867493d:/# root@58246867493d:/# cd /root root@58246867493d:~# ls root@58246867493d:~# mkdir TEST_DIR root@58246867493d:~# exit 

退出容器的状态:

 # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 58246867493d ubuntu:14.04 "/bin/bash" 2 minutes ago Exited (127) 57 seconds ago hungry_turing 

现在您可以提交更改,以便将容器保存到新的Docker镜像中:

 #docker commit 58246867493d ubuntu:15.0 

获取docker图片

 # docker images REPOSITORY TAG IMAGE ID CREATED SIZE **ubuntu 15.0 acac1f3733b2 10 seconds ago 188MB** ubuntu 14.04 132b7427a3b4 10 hours ago 188MB 

运行新build的Image来查看在前一个容器中提交的更改。

 # docker run -it ubuntu:15.0 /bin/bash root@3a48af5eaec9:/# cd /root/ root@3a48af5eaec9:~# ls TEST_DIR root@3a48af5eaec9:~# exit 

正如你所问, 任何进一步的变化,你在这个容器上或者可以承诺形成一个新的形象,或可以忽略

希望能帮助到你。