第 8 章:容器快照¶
在本章中,您需要以非特权用户(如果您从本书一开始就一直按照教程操作,则为“lxdadmin”)身份运行命令。
容器快照,以及快照服务器(稍后会详细介绍),可能是运行生产环境 LXD 服务器最重要的方面。快照可确保快速恢复。在更新特定容器上运行的主软件时,最好将其用作安全网。如果在更新过程中出现问题导致应用程序崩溃,您只需恢复快照即可恢复运行,停机时间仅为几秒钟。
作者曾将 LXD 容器用于面向公众的 PowerDNS 服务器,并且在每次更新前进行快照,使得更新这些应用程序的过程变得不那么令人担忧。
您甚至可以在容器运行时对其进行快照。
快照过程¶
首先,使用以下命令获取 ubuntu-test 容器的快照
lxc snapshot ubuntu-test ubuntu-test-1
在这里,您将快照命名为“ubuntu-test-1”,但您可以将其命名为任何名称。要确保您已创建快照,请执行容器的 lxc info
命令。
lxc info ubuntu-test
您之前已经查看过信息屏幕。如果滚动到最底部,您现在会看到
Snapshots:
ubuntu-test-1 (taken at 2021/04/29 15:57 UTC) (stateless)
成功!我们的快照已就位。
进入 ubuntu-test 容器
lxc exec ubuntu-test bash
使用 touch 命令创建一个空文件
touch this_file.txt
退出容器。
在恢复容器到创建文件之前的状态之前,最安全的恢复容器的方法,特别是如果已经进行了很多更改,是先停止它。
lxc stop ubuntu-test
恢复它
lxc restore ubuntu-test ubuntu-test-1
重新启动容器
lxc start ubuntu-test
如果您再次进入容器并查看,您创建的“this_file.txt”文件现在已消失。
当您不再需要快照时,可以将其删除
lxc delete ubuntu-test/ubuntu-test-1
警告
您应该始终在容器运行时删除快照。为什么?因为 lxc delete 命令也可以用于删除整个容器。如果我们不小心在上面的命令中“ubuntu-test”后面按了 Enter 键,并且容器已停止,那么该容器将被删除。不会有任何警告,它只会执行您要求的操作。
但是,如果容器正在运行,您将收到此消息
Error: The instance is currently running, stop it first or pass --force
因此,请始终在容器运行时删除快照。
在接下来的章节中,您将
- 设置自动创建快照的过程
- 设置快照过期,使其在一段时间后自动消失
- 设置快照自动刷新到快照服务器
作者:Steven Spencer
贡献者:Ezequiel Bruni, Ganna Zhyrnova