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

我现在使用LXD构建了新的Ubuntu 15.1服务器,并注销并重新登录,然后看到新的组。为了进行测试,我用14.04主机上的--numeric-owner开关将我现有的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?

提前致谢。

最佳答案

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

09-18 20:56