ubuntu – 在主机之间复制lxd容器

前端之家收集整理的这篇文章主要介绍了ubuntu – 在主机之间复制lxd容器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经在两个只能通过中间服务器(我没有su权限)进行通信的ubuntu主机上安装了lxd.我在localhost上创建了一个容器,现在希望在远程服务器上加载容器.

我在lxc / lxd repo中查阅了basic.sh测试脚本以确认我正在使用正确的方法(我发现我误解了图像与容器的方式).

我在我的localhost上创建了一个容器测试,在其中安装了所有必需的东西,停止它,发布它,并执行以下命令:

lxc image export test

这给了我一个tarball 42cf01c53cb9e … 83e3c48.tar.gz(这里缩写),如文档中所述(我正在运行lxc和lxd版本2.0.0.beta3).试图通过相同的主机导入该图像

lxc image import 42cf01c53cb9e...83e3c48.tar.gz --alias testimage

产生错误

exit status 2 (tar: Metadata.yaml: Not found in archive)

basic.sh脚本让我相信我正在遵循正确的路线(除了tar.gz vs tar.xz descrepancY).我能够导出标准图像并获得.xz文件(当我使用lxd-images获取它们时).例如,

lxd-images import ubuntu --alias ubuntu
lxc image export ubuntu

生成一个Meta-ubuntu … tar.xz和ubuntu … tar.xz文件,可以导入(在不同的服务器上)

lxc image import Meta...tar.xz rootfs ubuntu...tar.xz --alias imported_ubuntu

如何在主机之间复制容器?

谢谢!

编辑:我进一步调查并发布了我的测试容器,它创建了它的图像.然后,当我导出它时,我得到了.gz文件(没有元数据).如果我从原始图像中劫持元数据,那么虽然导入不再对我崩溃,但我无法启动容器 – 我显然不知道我在做什么.使用lxd的remote:方法(使用lxd配置添加主机后)将映像拉到第二个主机不会导致它出现在lxc images列表中.

lxd(v2.0)的后期发布(非beta版)似乎解决了我的问题.这些步骤可以在优秀的文档 here中找到:

>在主机A上发布图像(不停止容器);

$lxc publish --force container_name --alias image_name
Container published with fingerprint: d2fd708361...a125d0d5885

>将图像导出到文件;

$lxc image export image_name 
Output is in dd2fd708361...a125d0d5885.tar.gz

>将文件复制到主机B,然后导入;

$lxc image import dd2fd708361...a125d0d5885.tar.gz --alias image_name
Transferring image: 100%

>在主机B上启动容器(从图像中);

$lxc launch image_name container_name
Creating container_name
Starting container_name

在某些情况下,publish命令可能导致分割xz tar-ball —但两种格式都是supported.只需导入元数据和rootfs组件

lxc image import <Metadata tarball> <rootfs tarball> --alias image_name
原文链接:https://www.f2er.com/ubuntu/348047.html

猜你在找的Ubuntu相关文章