如何创建实例

要创建实例,您可以使用 incus initincus launch 命令。 incus init 命令仅创建实例,而 incus launch 命令创建并启动它。

用法

输入以下命令以创建容器

incus launch|init <image_server>:<image_name> <instance_name> [flags]
镜像

镜像包含基本操作系统(例如,Linux 发行版)和一些与 Incus 相关的信息。各种操作系统的镜像在内置的远程镜像服务器上可用。有关更多信息,请参阅 镜像

除非镜像在本地可用,否则您必须指定镜像服务器的名称和镜像的名称(例如,images:ubuntu/22.04 表示官方的 22.04 Ubuntu 镜像)。

实例名称

实例名称在 Incus 部署中(包括在集群中)必须唯一。有关其他要求,请参阅 实例属性

标志

有关标志的完整列表,请参阅 incus launch --helpincus init --help。最常用的标志是

  • --config 用于指定新实例的配置选项

  • --device 用于覆盖通过配置文件提供的设备的 设备选项,或用于指定 根磁盘设备的初始配置

  • --profile 用于指定要用于新实例的 配置文件

  • --network--storage 用于使新实例使用特定的网络或存储池

  • --target 用于在特定集群成员上创建实例

  • --vm 用于创建虚拟机而不是容器

传递配置文件

您可以将实例配置作为 YAML 文件传递给命令,而不是将其指定为标志。

例如,要使用 config.yaml 中的配置启动容器,请输入以下命令

incus launch images:ubuntu/22.04 ubuntu-config < config.yaml

提示

检查现有实例配置的内容(incus config show <instance_name> --expanded)以查看 YAML 文件所需的语法。

示例

以下示例使用 incus launch,但您可以以相同的方式使用 incus init

启动系统容器

要使用 images 服务器上的 Ubuntu 22.04 镜像启动系统容器,并使用实例名称 ubuntu-container,请输入以下命令

incus launch images:ubuntu/22.04 ubuntu-container

启动应用程序容器

要启动应用程序(OCI)容器,您首先需要添加镜像注册表

incus remote add oci-docker https://docker.io --protocol=oci

然后可以从其镜像之一启动容器

incus launch oci-docker:hello-world --ephemeral --console

启动虚拟机

要使用 images 服务器上的 Ubuntu 22.04 镜像启动虚拟机,并使用实例名称 ubuntu-vm,请输入以下命令

incus launch images:ubuntu/22.04 ubuntu-vm --vm

或使用更大的磁盘

incus launch images:ubuntu/22.04 ubuntu-vm-big --vm --device root,size=30GiB

使用特定配置选项启动容器

要启动容器并将资源限制为一个 vCPU 和 192 MiB 的 RAM,请输入以下命令

incus launch images:ubuntu/22.04 ubuntu-limited --config limits.cpu=1 --config limits.memory=192MiB

在特定集群成员上启动虚拟机

要在集群成员 server2 上启动虚拟机,请输入以下命令

incus launch images:ubuntu/22.04 ubuntu-container --vm --target server2

使用特定实例类型启动容器

Incus 支持云平台的简单实例类型。这些类型以字符串形式表示,可以在实例创建时传递。

语法允许以下三种形式

  • <instance type>

  • <cloud>:<instance type>

  • c<CPU>-m<RAM in GiB>

例如,以下三种实例类型是等价的

  • t2.micro

  • aws:t2.micro

  • c1-m1

要使用此实例类型启动容器,请输入以下命令

incus launch images:ubuntu/22.04 my-instance --type t2.micro

支持的云平台和实例类型的列表可以在 https://github.com/dustinkirkland/instance-type 找到。

启动从 ISO 启动的虚拟机

要启动从 ISO 启动的虚拟机,您必须首先创建一个虚拟机。假设我们想要创建一个虚拟机并从 ISO 镜像安装它。在这种情况下,使用以下命令创建一个空虚拟机

incus init iso-vm --empty --vm

注意

根据要安装的操作系统的需求,您可能需要为虚拟机分配更多 CPU、内存或存储空间。

例如,对于 2 个 CPU、4 GiB 内存和 50 GiB 存储,您可以执行以下操作

incus init iso-vm --empty --vm -c limits.cpu=2 -c limits.memory=4GiB -d root,size=50GiB

第二步是导入一个 ISO 镜像,稍后可以将其作为存储卷附加到虚拟机

incus storage volume import <pool> <path-to-image.iso> iso-volume --type=iso

最后,您需要使用以下命令将自定义 ISO 卷附加到虚拟机

incus config device add iso-vm iso-volume disk pool=<pool> source=iso-volume boot.priority=10

配置键 boot.priority 确保虚拟机首先从 ISO 启动。启动虚拟机并连接到控制台,因为可能需要与菜单进行交互

incus start iso-vm --console

在串行控制台中完成操作后,您需要使用 ctrl+a-q 断开与控制台的连接,并使用以下命令连接到 VGA 控制台

incus console iso-vm --type=vga

您现在应该可以看到安装程序。安装完成后,您需要分离自定义 ISO 卷

incus storage volume detach <pool> iso-volume iso-vm

现在可以重新启动虚拟机,它将从磁盘启动。

将 Incus Agent 安装到虚拟机实例中

为了使诸如直接命令执行 (incus exec)、文件传输 (incus file) 和详细使用指标 (incus info) 等功能能够与虚拟机正常配合使用,Incus 提供了一个代理软件。

来自 images 远程的虚拟机镜像已预先配置为在启动时加载该代理。

对于其他虚拟机,您可能需要手动安装代理。

注意

Incus Agent 目前仅在 Linux 虚拟机上可用。

Incus 通过一个远程 9p 文件系统提供代理,其挂载名称为 config。要安装代理,您需要访问虚拟机并运行以下命令

mount -t 9p config /mnt
cd /mnt
./install.sh

第一行将在挂载点 /mnt 上挂载远程文件系统。后续命令将运行安装脚本 install.sh 以安装并运行 Incus Agent。您需要执行此任务一次。