我是 lxc 的新手。我想从现有的操作系统创建我自己的 lxc 容器(我自己的 unix 内核编译在不同的架构中)。我正在尝试使用“lxc-create”。谁能建议我如何创建自己的容器,是否可以使用这种方法创建一个容器?创建自己的容器后是否需要更改任何配置?
如果 lxc 不适合这个,我可以用任何其他容器引擎来实现它吗?PS 我不需要虚拟机或任何虚拟机管理程序来实现相同的目标。
我是 lxc 的新手。我想从现有的操作系统创建我自己的 lxc 容器(我自己的 unix 内核编译在不同的架构中)。我正在尝试使用“lxc-create”。谁能建议我如何创建自己的容器,是否可以使用这种方法创建一个容器?创建自己的容器后是否需要更改任何配置?
如果 lxc 不适合这个,我可以用任何其他容器引擎来实现它吗?PS 我不需要虚拟机或任何虚拟机管理程序来实现相同的目标。
澄清一下,您是否尝试从您自己正在运行的操作系统中为容器创建映像?如果是这样,我不相信使用lxc-create
.
lxc-create 可用于下载各种发行版的公开可用图像。例如,您可以运行以下命令:
lxc-create -t download -n my-container-name
下载图像并从该图像创建容器。当您运行此命令时,下载模板将显示可用分发列表,您将能够从中创建正在运行的容器。有关这方面的更多信息,请参见此处。
将您自己的容器配置为您自己的规范的通常过程是从基本操作系统映像构建一个满足您要求的映像。有几种方法可以做到这一点。从这里的“手动构建图像部分”部分:
1) 生成容器文件系统。这完全取决于您使用的发行版。对于 Ubuntu 和 Debian,它将使用 debootstrap。
2)配置分发在容器中正常工作所需的任何东西(如果需要任何东西)。
3) 制作该容器文件系统的 tarball,可选择压缩它。
4)根据上面的描述写一个新的 metadata.yaml 文件。
5) 创建另一个包含该 metadata.yaml 文件的压缩包。
6) 将这两个 tarball 导入为 LXD 映像:
lxc image import <metadata tarball> <rootfs tarball> --alias some-name
另一种方法是从通用 linux 映像创建一个正在运行的容器(如前所述使用lxc-create
命令),然后进入容器的外壳,以便您可以根据需要更改配置,然后将修改后的容器发布为新的图片。例如:
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 Container Engine(正如本文中的标签所建议的那样),那么您将能够利用 Container Registry 来标记和存储图像的不同版本,并且还有大量文档和公开可用于 Docker 在线的图像。如果您想将它与 GCP 中的 VM 集成,如果您想了解更多信息,这里有一些很好的信息。