【问题标题】:Is there something like save and restore snapshots in dockerdocker中是否有保存和恢复快照之类的东西
【发布时间】:2019-10-17 00:09:44
【问题描述】:

我喜欢 docker,尤其是对于复杂的 CI 环境来说,这真是太棒了。 与虚拟机相比,使用 Docker 时我真正怀念的一件事是能够 保存并恢复容器的snapshots,我想知道Docker是否提供类似的东西?

【问题讨论】:

  • 这在虚拟机中是可能的,因为它们控制模拟的“硬件”并且可以控制和回放该硬件的状态。容器化中根本没有硬件仿真,因此您拥有与普通的非容器化程序一样的快照进程能力……也就是说,您获得的唯一功能非常有限,是实验性的,如果您做了任何不寻常的事情,很容易崩溃,并且不太可能在短期内变得更少受限或实验性。
  • (关于最后一点,我一直在观察人们试图回到过去几十年不主动运行时进程可以序列化为“dropfiles”的时代,而我还没有看到它做得很好。到“几十年”——我有一个 90 年代后期的 CS 教授,他哀叹 UNIX 和分页内存战胜了他在 60 年代建立的一个竞争系统,该系统是用纯可序列化进程设计的)。
  • 我有点理解序列化硬件状态的问题,但是使用 docker commit 命令时会不会也是这种情况?
  • Commit 只是一个sync-to-disk,可能带有一些 SIGSTOPs 以防止事情在飞行中发生变化。不涉及飞行中的内存/硬件/网络状态;这是一个更容易的问题。
  • (也就是说,我已经从 Docker kool-aid 毕业到 Nix kool-aid;而不是尝试序列化状态,在 Nix 世界中做正确的事几乎没有可变状态 - - 组成一个系统,包括您的整个操作系统配置,可重现的步骤在隔离的沙箱中运行,除了声明的输入外,无法访问任何内容,通过固定内容哈希或构建步骤的哈希树来解决哈希寻址的内容)。

标签: docker docker-engine docker-checkpoint


【解决方案1】:

docker checkpoint 可能会满足您的需求。 请注意,检查点是 experimental feature,您可能需要在实验模式下重新运行 docker 引擎。

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多