跳至内容

8 个容器快照

在本章中,您必须以非特权用户身份运行命令(如果您从本书开始就一直使用它们,则为“incusadmin”)。

容器快照和快照服务器(稍后将详细介绍)是运行生产 Incus 服务器的最关键方面。快照可确保快速恢复。在更新在特定容器上运行的主要软件时,最好使用它们作为安全措施。如果更新过程中发生导致应用程序崩溃的事件,您只需恢复快照,即可在几秒钟的停机时间内恢复运行。

作者将 Incus 容器用于面向公众的 PowerDNS 服务器,并且由于在每次更新之前都进行快照,更新这些应用程序不再那么麻烦。

您甚至可以在容器运行时对其进行快照。

快照过程

首先,使用以下命令获取 ubuntu-test 容器的快照

incus snapshot ubuntu-test ubuntu-test-1

在这里,您将快照命名为“ubuntu-test-1”,但您可以将其命名为任何名称。为了确保您拥有快照,请对容器进行 incus info

incus info ubuntu-test

您已经查看了信息屏幕。如果您滚动到底部,您现在会看到

Snapshots:
  ubuntu-test-1 (taken at 2021/04/29 15:57 UTC) (stateless)

成功!我们的快照已到位。

进入 ubuntu-test 容器

incus shell ubuntu-test

使用 touch 命令创建一个空文件

touch this_file.txt

退出容器。

在将容器恢复到创建文件之前的状态之前,恢复容器最安全的方式(尤其是在进行了许多更改的情况下)是先停止它

incus stop ubuntu-test

恢复它

incus restore ubuntu-test ubuntu-test-1

再次启动容器

incus start ubuntu-test

如果您再次返回容器并查看,您创建的“this_file.txt”不见了。

当您不再需要快照时,您可以将其删除

incus delete ubuntu-test/ubuntu-test-1

警告

您应该在容器运行时永久删除快照。为什么?嗯,incus delete 命令也可以用于删除整个容器。如果我们在上面的命令中不小心在“ubuntu-test”之后按了回车键,并且容器已停止,则该容器将被删除。我只是想让您知道没有给出任何警告。它只是按照您的要求执行。

但是,如果容器正在运行,您将收到此消息

Error: The instance is currently running, stop it first or pass --force

因此,始终在容器运行时删除快照。

在接下来的章节中,您将

  • 设置自动创建快照的过程
  • 设置快照的过期时间,以便它在一定时间后消失
  • 设置将快照自动刷新到快照服务器

作者:Steven Spencer

贡献者:Ezequiel Bruni, Ganna Zhyrnova