我安装了 Ubuntu 16.04,xfce 桌面值得。我已经安装了 LXD,我的图像和容器在我的第二个大驱动器上,并带有指向配置的所述图像和容器的符号链接/var/lib/lxd/
。一切都按预期工作。
我现在已经在一个新的驱动器上重新安装了 Ubuntu 16.04,它的价值是 Mate 桌面。我已经安装了 LXD 并/var/lib/lxd
在我的大驱动器上创建了指向我的图像和容器文件夹的符号链接 (in)。
使用 lxc list 时,我的图像和容器都没有列出(因此无法启动和使用它们)。
关于我需要做些什么来让我新安装的 LXD 使用我预先存在的图像和容器的任何指示?
对于任何感兴趣的人来说,缺少的部分是我必须重新使用现有的 lxd 数据库,
lxd.db
.因此,我在全新安装时使用现有的 LXD 容器的步骤是:-
安装 LXD
删除
containers
和images
目录创建指向我预先存在的目录的符号
containers
链接images
。挂载我的原始安装分区并将 lxd.db 文件从我的原始安装复制到我的新安装
当我列出它们并按预期运行时,我的容器现在会显示出来。
注意:我在多个分区上进行了多次安装,当新版本的 Ubuntu 可用时,我会在它们之间跳跃,并且在我满意之前不要删除旧版本。这真的很容易做到,而且刚刚成为第二天性。
我知道这不是常见的做法,但这次它(再次)拯救了我的培根。对于那些不这样做的人,
lxd.db
建议对文件进行备份。编辑:进一步阅读https://insights.ubuntu.com/2016/04/13/lxd-2-0-remote-hosts-and-container-migration-612/表明使用遥控器也很容易LXD 主机,只需在主机之间移动容器。
在这种特殊情况下,这不是我的解决方案,但它是一本很好的读物,展示了一种非常简单的容器迁移方法。
由于我的评论包含一些拼写错误,我将回顾一些将现有容器(其存储可用)导入新数据库的建议。
首先,如果想要复制 LXD 的整个实例(通过基本上获取所有容器的存储,加上来自 的数据库
/var/lib/lxd
),有(可以说)更简单的选择。此外,如果旧实例仍在运行并且可通过网络访问,则更本机的方法是将其定义为远程,如精彩的 Ubuntu Insights LXD 2.0:博客文章系列中的远程主机和容器迁移一章中所述。现在,该系列的另一章中描述的一种方法(同样,仅在旧实例仍在运行时才可行)是使用
然后将其导出到 tarballs
生成的 tarball 可以使用
正如 OP 在评论中所说,这是一项相当多的工作。更严重的是,如果由于某种原因您无法运行旧实例,它会失败。
从 2.7 版开始,LXD 将
backup.yaml
文件存储在每个容器的存储空间 (at/var/lib/lxd/containers/<my-container>
) 中,允许从副本中导入容器,使用lxd import
(参见LXD 备份策略和这个GitHub 问题)。注意lxd
; 这不同于lxc image import
.根据LXD 新闻页面,我认为可以通过简单地将容器的存储移动到
/var/lib/lxd/containers
目录中并运行然而,由于 Xenial 官方存储库目前提供 LXD 的 2.0.9 版本,我还没有测试最后一部分。