8 容器快照
在本章中,您必须以非特权用户(如果您一直按照本书开头的方法操作,则为“incusadmin”)的身份运行命令。
容器快照和快照服务器(稍后详述)是运行生产 Incus 服务器最关键的方面。快照可确保快速恢复。在更新运行在特定容器上的主软件时,最好将其用作故障转移。如果在更新过程中发生任何导致应用程序损坏的事件,只需恢复快照,即可在短短几秒钟的停机时间内恢复运行。
作者在 Incus 容器上运行面向公众的 PowerDNS 服务器,得益于每次更新前都进行快照,更新这些应用程序变得不那么麻烦了。
您甚至可以在容器运行时对其进行快照。
快照过程¶
首先使用此命令获取 ubuntu-test 容器的快照
incus snapshot create 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 snapshot restore ubuntu-test ubuntu-test-1
再次启动容器
incus start ubuntu-test
如果您再次返回容器查看,您创建的“this_file.txt”文件已消失。
当您不再需要快照时,可以将其删除
incus snapshot 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