当前位置: 首页 > 知识库问答 >
问题:

我可以从自己的自定义操作系统创建LXC映像吗?

糜单弓
2023-03-14

我是LXC的新人。我想从现有的操作系统中创建我自己的lxc容器(我自己的unix内核在不同的架构中编译)。我正在尝试使用"lxc-创建"。有人能建议我如何创建自己的容器吗?这种方法是否可以创建一个容器?创建自己的容器后,是否需要更改任何配置?

如果lxc不适合这个,我可以用其他容器引擎实现它吗?P. S.我不需要vms或任何管理程序来实现相同的功能。

共有1个答案

燕琨
2023-03-14

只是想澄清一下,您是否正在尝试从自己运行的操作系统创建容器的映像?如果是这样的话,我认为使用lxcreate是不可能的。

LXCREATE可用于下载各种发行版的公开可用图像。例如,可以运行以下命令:

 lxc-create -t download -n my-container-name 

下载图像并从该图像创建容器。当您运行此命令时,下载模板将显示可用发行版的列表,您可以从中创建一个正在运行的conainter。有关这方面的更多信息,请参见此处。

根据您自己的规范配置您自己的容器的通常过程是从基本操作系统映像为您的需求构建映像。有几种方法可以做到这一点。从此处的“手动构建图像”部分:

1) 生成一个容器文件系统。这完全取决于您使用的发行版。对于Ubuntu和Debian,它将使用debootstrap。

2) 配置发行版在容器中正常工作所需的任何内容(如果需要)。

3) 对容器文件系统做一个tarball,可以选择压缩它。

4) 编写一个新的元数据。yaml文件基于上述文件。

5) 创建另一个包含该元数据的tarball。yaml文件。

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 online还有大量文档和公共图像可供使用。如果您想将它与GCP中的VM集成,如果您想了解更多信息,这里有一些很好的信息。

 类似资料:
  • 嗨,我是新的GoogleDataProc和尝试创建自定义图像的dataproc。我已经按照留档中提到的所有步骤,但在运行它时,我得到了成功匹配发现“构建成功:数据处理程序初始化操作成功”之后,我得到以下错误: 来自安装了gcloud sdk的本地计算机的命令: python生成自定义图像。py--映像名称xyz--dataproc版本1.2.45--自定义脚本自定义脚本。sh——菊花路径~/dai

  • Home assistant 支持设备显示的高度自定义,你可以给设备更换昵称、图标、图标以及隐藏设备等。 设置方法 设备的个性化由 customize 模块定义,默认配置文件 configuration.yaml 中 customize 位于 homeassistant模块下: homeassistant: # 名称,可为中文 name: 家 # 纬度 latitude: !sec

  • 是否可以使用AWS提供的Java SDK创建AWS CloudWatch自定义度量? 《开发人员指南》讨论了通过命令行工具发布自定义度量。 这在Java SDK中是可能的吗?如果是,请提供链接或教程。

  • 问题内容: 根据Docker文档,要构建自己的映像,您必须始终使用指令指定基本映像。 显然,Docker索引中有很多图像可供选择,但是如果我想构建自己的图像怎么办?那可能吗? 如果我理解正确,该映像是在Ubuntu上构建的,并且我想尝试使用Debian映像。另外,我想真正了解Docker的工作原理,该映像对我来说仍然是一个黑匣子。 编辑: 有关创建基本映像的官方文档 问题答案: 您可以看一下如何创

  • 我正在使用reverfit2、rxjava2和adapter-rxjava来实现我的http api调用。 如果我有很多api需要实现,并且每个单独的api实现都需要添加这两行: 我不想在每个api实现中添加它们。我想使用MyObservable作为api定义的结果类型。 我的想法如下所示: 我在https://github.com/square/reverfit/blob/master/reve

  • VM create失败,原因是ISOSDISK错误:MSRESTAZURE.AZURE_Exceptions.CloudError:不允许更改属性'osDisk.Image.URI'。 如果有帮助,则是将事务发送到Azure: URL:hps://management.azure.com/subscriptions/b97ddb69-f825-48b4-9e19-48eb3b4c8267/reso