3

我已经看遍了,但看不到有没有办法。我有几个在 Ubuntu 14.04 主机上运行 Ubuntu 14.04 的 LXC 容器。它们对我来说变得非常重要,所以如果主机的硬件出现故障,我希望能够轻松地将 LXC 容器备份/迁移到另一台服务器。

我现在使用 LXD 构建了一个新的 Ubuntu 15.1 服务器,并已注销并重新登录并查看新组。--numeric-owner为了进行测试,我使用14.04 主机上的开关 tar'd 了一个现有的 LXC 容器:

tar --numeric-owner -czvf ContToBeMoved.tgz /var/lib/lxc/my_container

---然后在新服务器上---

tar --numeric-owner -xzvf ContToBeMoved.tgz -C /var/lib/lxc/

...并已在新服务器 15.1 服务器上成功恢复 LXC 容器。

但是,当我运行 LXD 命令时,LXD 看不到容器。我尝试将容器移动到/var/lib/lxd/containers目录中,但 LXD 仍然没有看到它。有没有办法编辑/克隆/迁移 LXC 容器,以便我们可以继续使用 LXD?

提前致谢。

4

1 回答 1

5

LXD 使用 sqlite 数据库进行容器配置,因此仅将容器的 rootfs 转储到位是不够的。

最简单的方法是使用 LXD 创建一个新容器,然后从 /var/lib/lxd/containers/NAME/rootfs 中删除其 rootfs 并替换原始主机中的那个。

请注意,LXD 默认运行非特权容器,如果您的源容器是特权容器(/var/lib/lxc/NAME/rootfs 由 root:root 拥有,而不是 100000:100000),那么您也需要运行以下命令:

lxc config set NAME security.privileged true
于 2015-11-23T17:12:37.143 回答