lxc的新手。我想从现有的OS(我自己的unix内核在不同的架构中编译)创建自己的lxc容器。我正在尝试使用“lxc-create”。任何人都可以建议我如何创建自己的容器,是否可以创建一个或不使用这种方法?创建自己的容器后是否需要更改任何配置?
如果lxc不适合这个,我可以用任何其他容器引擎实现吗?附:我不需要vms或任何虚拟机管理程序来实现相同的目标。
答案 0 :(得分:1)
只是为了澄清一下,您是否尝试从自己运行的操作系统中为容器创建映像?如果是这样,我认为使用lxc-create
无法做到这一点。
lxc-create可用于下载各种发行版的公开可用图像。例如,您可以运行以下命令:
lxc-create -t download -n my-container-name
下载图像并从该图像创建容器。运行此命令时,下载模板将显示可用的分发列表,您可以从中创建运行的conainter。有关详细信息,请参阅here。
根据您自己的规范配置您自己的容器的常用过程是从基本操作系统映像构建满足您需求的映像。有几种方法可以做到这一点。从“手动构建图片部分”部分here:
1)生成容器文件系统。这完全取决于您使用的分布。对于Ubuntu和Debian,它将使用debootstrap。
2)配置分发在容器中正常工作所需的任何内容(如果需要)。
3)制作该容器文件系统的tarball,可选择压缩它。
4)根据上述内容编写一个新的metadata.yaml文件。
5)创建另一个包含metadata.yaml文件的tarball。
6)将这两个tarball作为LXD图像导入:
lxc image import <metadata tarball> <rootfs tarball> --alias some-name
另一种方法是从通用linux映像创建一个正在运行的容器(如前面使用lxc-create
命令所述),然后输入容器的shell,以便您可以根据需要更改配置,然后将修改后的容器发布为新图像。例如:
lxc launch ubuntu:14.04 my-container
lxc exec my-container bash
<do whatever change you want>
lxc publish my-container --alias my-new-image
配置完目标图像后,可以从这些图像中运行容器。
关于你关于其他可能性的问题,我建议调查Docker容器。如果您正在以某种身份使用Google容器引擎(正如本文中的标记所示),那么您就可以利用容器注册表来标记和存储不同版本的图像,并且还有大量文档和公共文档Docker在线可用的图像。如果您想将其与GCP中的VM集成,如果您想了解更多信息,可以获得一些好的信息here。