如何创建实例¶
要创建实例,您可以使用 incus init
或 incus 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 --help
或incus 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。您需要执行此任务一次。