我已经找遍了,但看不出有没有办法。我在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/
...and已经成功地在新服务器15.1服务器上恢复了LXC容器。
但是,当我运行LXD命令时,LXD看不到容器。我尝试将容器移动到/var/lib/lxd/containers目录,但LXD仍然看不到它。有没有办法编辑/克隆/迁移LXC容器,这样我们就可以继续使用LXD了?
提前谢谢。
发布于 2015-11-24 01:12:37
LXD使用sqlite数据库进行容器配置,因此仅将容器的rootfs转储到适当的位置是不够的。
完成所需操作的最简单方法是使用LXD创建一个新容器,然后从/var/lib/lxd/containers/NAME/rootfs中删除它的rootfs,并将其替换为原始主机中的rootfs。
请注意,默认情况下,LXD运行非特权容器,如果您的源容器是特权容器(/var/lib/lxc/NAME/rootfs属于root:root而不是100000:100000),那么您还需要运行以下命令:
lxc config set NAME security.privileged truehttps://stackoverflow.com/questions/33377916
复制相似问题