iSula容器引擎及使用方法¶
iSula简介¶
iSula是openEuler社区开发的容器引擎,它是一个轻量级的容器引擎,支持容器的创建、启动、停止、删除、暂停、恢复、查看、导入、导出、镜像管理等功能。
openEuler Embedded在构建时集成了iSula容器引擎,用户可以通过iSula容器引擎来管理容器。 当前iSula容器引擎的默认容器运行时为lcr,也支持runc和kata-runtime。 支持的容器镜像格式为OCI镜像,Docker镜像和external rootfs。
iSula有两种容器管理操作接口:CLI和CRI。 CLI采用命令行方式,是标准的C/S架构模式,将iSulad作为daemon服务端,iSula作为独立的客户端命令,供用户使用。 CRI是由K8S对外提供的容器和镜像服务接口,供容器引擎接入K8S使用。
当前,openEuler Embedded支持iSula容器引擎的CLI接口。之后会支持CRI接口,并与KubeEdge等容器管理工具进行集成。
构建带有iSula的openEuler Embedded镜像¶
当前openEuler Embedded标准镜像中默认不集成iSula容器引擎。
如果需要集成isulad,需要在 local.conf
文件中添加如下配置:
DISTRO_FEATURES:append = " isulad "
当然,也可以通过oebuild,在生成构建目录时增加 -f openeuler-container
参数,以指定构建openEuler Embedded镜像时集成iSula容器引擎。
具体的构建过程,参见 构建OS镜像使用指导。
构建openeuler-container-os的过程和标准的openEuler Embedded镜像类似,
不同之处仅仅在于,在构建镜像中需要输入如下命令而非 bitbake openeuler-image
:
$ bitbake openeuler-container-os
手动启动iSula daemon¶
如果是标准的openEuler Embedded镜像,默认不会自动启动iSulad。用户可以手动启动iSula daemon服务端。
首先,进入openEuler Embedded镜像后,我们需要为iSula daemon服务端配置镜像源。
打开 /etc/isulad/daemon.json
文件,并在 registry-mirrors
字段中添加镜像源地址。
我们可以添加 "docker.io"
。
之后,运行如下命令启动iSula daemon服务端:
# 将isula daemon服务端作为后台进程启动
$ isulad &
...
...
isulad 20240131074734.534 - iSulad successfully booted in 0.120 s
如果启动成功,会有相应的日志信息输出到串口终端上。
如果用户在生成构建目录的时候,特性里选择了 systemd
,那么在启动openEuler Embedded镜像后,
可以使用如下命令启动iSula daemon服务端:
# 启动iSula daemon服务端
$ systemctl start isulad
iSula容器引擎使用简介¶
本文档仅记载一些简单的操作,更具体的参数命令和操作, 请参见iSula容器引擎的 官方文档 。
拉取一个镜像
# 拉取一个镜像
$ isula pull busybox
此命令从daemon.json中配置的镜像源地址拉取busybox镜像。
查看本地镜像列表
# 查看镜像列表
$ isula images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest 59788edf1f3e 2 weeks ago 1.22MB
运行容器
# 运行一个容器
$ isula run -it busybox sh
/ #
成功运行后,我们可以通过命令行与容器进行交互。
如果想要退出容器,可以在命令行输入 exit
命令。
创建一个容器
# 创建一个容器
$ isula create -it busybox sh
上述命令以交互模式创建了一个容器,并且分配了伪终端,但是没有运行。
如果用户希望启动并接入已有的容器,可以使用如下的两条命令:
启动一个容器
# 启动一个容器
$ isula start <container_id>
进入容器交互界面(接入容器)
# 进入容器交互界面
$ isula attach <container_id>