我安装了 Ubuntu 16.04,xfce 桌面,物有所值。我已经安装了 LXD,我的图像和容器在我的第二个大驱动器上,并带有指向在/var/lib/lxd/. 一切都按预期工作。
我现在已经在新驱动器 Mate 桌面上重新安装了 Ubuntu 16.04,物有所值。我已经安装了 LXD 并/var/lib/lxd在我的大驱动器上创建了指向我的图像和容器文件夹的符号链接(在 中)。
使用 lxc list 时,我的图像和容器均未列出(因此无法启动它们并使用它们)。
关于我需要做什么才能让我新安装的 LXD 使用我预先存在的图像和容器的任何指示?
对于任何感兴趣的人来说,缺少的一块拼图是我必须重新使用现有的 lxd 数据库,lxd.db.
因此,我在全新安装中使用预先存在的 LXD 容器的步骤是:-
安装LXD
sudo apt-get install lxd
Run Code Online (Sandbox Code Playgroud)
删除containers和images目录
sudo rm -rf /var/lib/lxd/containers
sudo rm -rf /var/lib/lxd/images
Run Code Online (Sandbox Code Playgroud)
创建指向我预先存在的目录的符号containers链接images。
sudo ln -s /media/sda10/lxd/containers /var/lib/lxd/containers
sudo ln -s /media/sda10/lxd/images /var/lib/lxd/images
Run Code Online (Sandbox Code Playgroud)
挂载我的原始安装分区并将 lxd.db 文件从原始安装复制到新安装
sudo cp /mnt/var/lib/lxd/lxd.db /var/lib/lxd/lxd.db
Run Code Online (Sandbox Code Playgroud)
现在,当我列出容器并按预期运行时,它们就会显示出来。
注意:我在多个分区上进行了多次安装,当新版本的 Ubuntu 可用时,我会在它们之间切换,并且在满意之前不会删除旧版本。这真的很容易做到,并且已经成为第二天性。
我知道这并不常见,但这次它(再次)救了我的命。lxd.db对于那些不这样做的人,建议您备份文件。
编辑:进一步阅读https://insights.ubuntu.com/2016/04/13/lxd-2-0-remote-hosts-and-container-migration-612/表明使用远程也非常容易LXD 主机并简单地在主机之间移动容器。
在这个特定的例子中,这不是我的解决方案,但它是一本非常好的读物,展示了一种非常简单的容器迁移方法。