如何导出 lxc 容器?

如何导出 lxc 容器?

是否可以将lxc容器导出到另一台机器?有一些工具,例如lxc-snaplxc-clone它们有助于导出到另一个系统吗?我可以复制粘贴 rootfs 文件夹吗?或者有没有标准方法可以做到这一点?

答案1

我不认为lxc-clonelxc-snap应该被用来将容器移动到新机器上。这些命令的理由根据一位 LXC 开发人员的说法,其特点是:

这些快照克隆的一个明显用例是支持 rootfs 映像的增量开发。进行一些更改,创建快照,再进行一些更改,创建快照,恢复……

从来没有提到过导出到不同的机器...

同时,我已成功将 Debian LXC 从 Debian 机器移植到 Arch Linux 机器,首先创建一个 Debian LXC 容器,无需任何自定义,然后将文件config, fstab, lxcname.logrootfs目录复制到新机器。您可以像我一样尝试一下,但是... YMMV。

答案2

我在卷上运行lxc容器btrfs,这样我就可以轻松地使用btrfs sub snap

btrfs与使用以下命令相比,这些可以更快地移动到远程文件系统rsync

btrfs send /my/snapshot | ssh [email protected] "btrfs receive /my/destination"

btrfs具有智能快照功能且不包括虚拟文件系统 [ proc run sys]。还可以传输增量快照。

将快照移动到 btrfs文件系统:

  • 将远程目标挂载为sshfs文件系统并cd挂载
  • 停止容器并创建tar.xz容器的存档

答案3

实际上,您只需复制文件系统并进行上述帖子中提到的相关更改即可使一切正常运行。最初我这样做了,并使其正常工作。

我总是遇到 LXC 容器中的 NAT 问题,所以如果你是轻量级用户,你也可以直接chroot进入系统。目前我习惯lxc-templates创建所需操作系统的副本,然后chroot进入该系统执行我的事情。在我的用例中我不需要虚拟化。这个想法很简单(不是在实现方面),它可以轻松移植。

相关内容