有没有办法休眠Docker容器

Sco*_*ott 7 docker

我喜欢使用Jupyter Notebook。如果我在virtualbox的VM中运行它,则可以保存VM的状态,然后从第二天停下来的地方继续。如果要在docker容器中运行它,可以做类似的事情吗?即将容器的“状态”转储到磁盘,然后将其重新启动并重新加载“状态”?

Sco*_*ott 6

看来这docker checkpoint可能是我要在这里完成的事情。在文档中没有这么多描述它。实际上,docker checkpoint说“管理检查点” 的文档完全没有帮助。

更新:事实上,这就是码头工人检查站应该完成的工作。当我对jupyter笔记本容器进行检查时,它会保存起来,可以使用进行备份docker start --checkpoint [my_checkpoint] jupyter_notebook,它显示我在某种Running状态下正在运行的东西。但是,尝试再使用Running笔记本失败。我不确定这是CRIU问题还是Jupyter问题,但是我将在适当的git问题跟踪器中提出它。

Anyhoo docker checkpoint是应该提供VM保存状态/休眠样式功能的东西。


Rob*_*ert 5

我能看到的最接近的方法是 docker pause <container-id>

https://docs.docker.com/engine/reference/commandline/pause/

docker pause 命令暂停指定容器中的所有进程。在 Linux 上,这使用 cgroups freezer。传统上,当挂起一个进程时,会使用 SIGSTOP 信号,这个信号可以被被挂起的进程观察到。使用 cgroups freezer,进程不知道,也无法捕获,它被挂起,随后又恢复。

考虑到与 VirtualBox 休眠的一个重要区别,即容器化进程的内存状态没有磁盘持久性。