openEuler操作系统系列课程 基础实验四:iSula轻量级容器技术入门(实践)
本篇博客记录了基于openEuler的iSula轻量级容器技术入门的实验过程,涵盖了容器引擎的安装、容器的构建、删除、运行、导出等相关操作。通过本实验,读者可以了解iSula容器的基本使用方法,掌握在openEuler环境下进行容器管理的核心步骤,并为后续深入学习容器技术打下坚实基础。实验内容包括具体命令的演示、操作流程的详细说明以及常见问题的解决方法,适合初学者参考和实践。
实验环境
实验准备
安装开发工具
iSulad 的安装、配置和启动
使用yum工具安装iSulad容器引擎:
安装完成后进入对应引擎目录,修改配置文件来指定容器镜像的注册地址
修改内容如下所示:
hub.oepkgs.net为openEuler社区与中科院软件所共建的、开源免费的容器镜像仓库。在该网站可以搜索到可用于该实验的容器镜像。
检查配置文件格式是否正确(如果配置文件的内容能正确显示出来,即表示其格式合法):
结果输出如下:
重启isulad使配置文件生效:
查看isulad运行状况
输出为:
输出中包含active(running)字样,启动成功,至此isula安装成功,可以进行下一步的实验操作。
一. iSulad容器与镜像管理
使用isula run运行容器busybox:
输出为:
如果是第一次运行,则会有如下的输出(本地没有容器,所以会去远仓拉取):
查看镜像:
输出如下所示:
使用isula run -it命令再次运行容器busybox:
此时会进入容器的命令行交互界面,查看一下系统信息等内容:
输入exit退出容器
使用-itd参数来后台运行容器:
使用容器ID(前12位)作为标识符进入容器内部命令行界面:
通过isula attach命令接入容器后使用exit指令退出,此时会终止实例运行:
二. 使用isula-build构建容器镜像
在之前的步骤中,我们使用的容器镜像是从hub.oepkgs.net下载的已经构建好的容器镜像,下面使用iSula提供的容器镜像构建工具isula-build,构建自己的容器镜像并运行。
安装isula-build
首先检查yum源:
输出为:
可以发现update的输出,表示update节的enable = 1,符合实验安装需求。
接下来使用yum指令安装isula-build
isula-build构建Dockerfile内的RUN指令时依赖可执行文件runc,我们可以通过安装docker-runc来获取runc二进制:
使用systemctl start命令启动
使用如下指令查看isula-build的版本,如果有对应输出也表示了安装成功:
个人实验环境下输出如下所示:
修改/etc/isula-build/registries.toml,将hub.oepkgs.net加入到isula-build可搜索的镜像仓库列表里:
修改内容如下所示:

重启isula-build服务:
查看配置:
配置输出结果如下图所示:

可以看到在Search Registries配置项里看到hub.oepkgs.net,isula-buid安装完成。
构建容器镜像并导出到isulad
在接下来的步骤中,我们将构建容器镜像并将其导出到本地isulad容器引擎的存储中。
创建Dockerfile:
编辑内容如下:
编辑在Dockerfile中使用到的hello.sh脚本,它将被加到原有的镜像中以构建出我们自己的镜像:
编辑内容如下:
修改文件属性:
用isula-build构建我们自己的容器镜像并导出到isulad,镜像命名为hello-isula-build:v0.1:
构建过程如下图所示:

查询构建出来的镜像并运行容器:
输出结果如下所示:
由于构建过程中使用-o将构建的镜像导出到了本地的isulad的容器引擎中,所以使用isula命令也可以查看和使用刚才创建的容器:
输出如下所示:
我们使用自己构建出来的容器镜像来运行容器:
输出Hello, iSula!,自己构建的容器运行成功!
至此,实验结束。
实验心得
通过本次实验,我深入了解了 openEuler 环境下 iSula 轻量级容器技术的基本使用方法。从容器引擎的安装与配置,到镜像的拉取、构建、导出及运行,每一步都加深了我对容器技术原理和实际操作流程的理解。尤其是在使用 isula-build 构建自定义镜像并导入到本地 isulad 容器引擎的过程中,体会到了容器技术在软件交付和环境隔离方面的高效与便捷。
实验过程中遇到的配置文件修改、服务重启、权限设置等细节问题,也让我认识到运维工作的严谨性和重要性。通过查阅官方文档和社区资源,逐步解决了遇到的各种小问题,提升了独立解决问题的能力。
总的来说,本次实验不仅掌握了 iSula 的基本操作,还为后续深入学习容器编排、镜像优化等高级内容打下了坚实基础。未来希望能在 openEuler 生态下探索更多容器相关技术,提升自己的系统运维与自动化能力。
openEuler操作系统系列课程 基础实验四:iSula轻量级容器技术入门(实践)
本篇博客记录了基于openEuler的iSula轻量级容器技术入门的实验过程,涵盖了容器引擎的安装、容器的构建、删除、运行、导出等相关操作。通过本实验,读者可以了解iSula容器的基本使用方法,掌握在openEuler环境下进行容器管理的核心步骤,并为后续深入学习容器技术打下坚实基础。实验内容包括具体命令的演示、操作流程的详细说明以及常见问题的解决方法,适合初学者参考和实践。
实验环境
实验准备
安装开发工具
iSulad 的安装、配置和启动
使用
yum工具安装iSulad容器引擎:安装完成后进入对应引擎目录,修改配置文件来指定容器镜像的注册地址
cd /etc/isulad/ # 进入路径 cp daemon.json{,.before} # 备份文件 vim daemon.json # 修改配置文件修改内容如下所示:
...... "registry-mirrors": [ "hub.oepkgs.net" ], ......hub.oepkgs.net为openEuler社区与中科院软件所共建的、开源免费的容器镜像仓库。在该网站可以搜索到可用于该实验的容器镜像。
检查配置文件格式是否正确(如果配置文件的内容能正确显示出来,即表示其格式合法):
结果输出如下:
{ "group": "isula", "default-runtime": "lcr", "graph": "/var/lib/isulad", "state": "/var/run/isulad", "engine": "lcr", "log-level": "ERROR", "pidfile": "/var/run/isulad.pid", "log-opts": { "log-file-mode": "0600", "log-path": "/var/lib/isulad", "max-file": "1", "max-size": "30KB" }, "log-driver": "stdout", "container-log": { "driver": "json-file" }, "hook-spec": "/etc/default/isulad/hooks/default.json", "start-timeout": "2m", "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ], "registry-mirrors": [ "hub.oepkgs.net" ], "insecure-registries": [], "pod-sandbox-image": "", "native.umask": "normal", "network-plugin": "", "cni-bin-dir": "", "cni-conf-dir": "", "image-layer-check": false, "use-decrypted-key": true, "insecure-skip-verify-enforce": false, "cri-runtimes": { "kata": "io.containerd.kata.v2" } }重启isulad使配置文件生效:
查看isulad运行状况
输出为:
● isulad.service - iSulad Application Container Engine Loaded: loaded (/usr/lib/systemd/system/isulad.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2025-07-14 12:17:08 CST; 2min 4s ago Main PID: 878 (isulad) Tasks: 12 (limit: 42464) Memory: 28.4M CGroup: /system.slice/isulad.service └─ 878 /usr/bin/isulad Jul 14 12:17:07 ecs-3616-b1cb systemd[1]: Starting iSulad Application Container Engine... Jul 14 12:17:08 ecs-3616-b1cb isulad[878]: iSula 20250714041708.315 - iSulad successfully booted in 0.357 s Jul 14 12:17:08 ecs-3616-b1cb systemd[1]: Started iSulad Application Container Engine.输出中包含
active(running)字样,启动成功,至此isula安装成功,可以进行下一步的实验操作。一. iSulad容器与镜像管理
使用
isula run运行容器busybox:输出为:
如果是第一次运行,则会有如下的输出(本地没有容器,所以会去远仓拉取):
查看镜像:
输出如下所示:
使用
isula run -it命令再次运行容器busybox:此时会进入容器的命令行交互界面,查看一下系统信息等内容:
输入
exit退出容器使用
-itd参数来后台运行容器:使用容器ID(前12位)作为标识符进入容器内部命令行界面:
通过
isula attach命令接入容器后使用exit指令退出,此时会终止实例运行:二. 使用isula-build构建容器镜像
在之前的步骤中,我们使用的容器镜像是从hub.oepkgs.net下载的已经构建好的容器镜像,下面使用iSula提供的容器镜像构建工具isula-build,构建自己的容器镜像并运行。
安装isula-build
首先检查
yum源:输出为:
可以发现update的输出,表示
update节的enable = 1,符合实验安装需求。接下来使用
yum指令安装isula-buildisula-build构建Dockerfile内的RUN指令时依赖可执行文件runc,我们可以通过安装docker-runc来获取runc二进制:
使用
systemctl start命令启动使用如下指令查看isula-build的版本,如果有对应输出也表示了安装成功:
个人实验环境下输出如下所示:
修改/etc/isula-build/registries.toml,将hub.oepkgs.net加入到isula-build可搜索的镜像仓库列表里:
cp /etc/isula-build/registries.toml{,.before} vim /etc/isula-build/registries.toml修改内容如下所示:

重启isula-build服务:
查看配置:
配置输出结果如下图所示:

可以看到在
Search Registries配置项里看到hub.oepkgs.net,isula-buid安装完成。构建容器镜像并导出到isulad
在接下来的步骤中,我们将构建容器镜像并将其导出到本地isulad容器引擎的存储中。
创建Dockerfile:
编辑内容如下:
编辑在Dockerfile中使用到的hello.sh脚本,它将被加到原有的镜像中以构建出我们自己的镜像:
编辑内容如下:
修改文件属性:
用isula-build构建我们自己的容器镜像并导出到isulad,镜像命名为hello-isula-build:v0.1:
构建过程如下图所示:

查询构建出来的镜像并运行容器:
输出结果如下所示:
由于构建过程中使用
-o将构建的镜像导出到了本地的isulad的容器引擎中,所以使用isula命令也可以查看和使用刚才创建的容器:输出如下所示:
我们使用自己构建出来的容器镜像来运行容器:
输出
Hello, iSula!,自己构建的容器运行成功!至此,实验结束。
实验心得
通过本次实验,我深入了解了 openEuler 环境下 iSula 轻量级容器技术的基本使用方法。从容器引擎的安装与配置,到镜像的拉取、构建、导出及运行,每一步都加深了我对容器技术原理和实际操作流程的理解。尤其是在使用 isula-build 构建自定义镜像并导入到本地 isulad 容器引擎的过程中,体会到了容器技术在软件交付和环境隔离方面的高效与便捷。
实验过程中遇到的配置文件修改、服务重启、权限设置等细节问题,也让我认识到运维工作的严谨性和重要性。通过查阅官方文档和社区资源,逐步解决了遇到的各种小问题,提升了独立解决问题的能力。
总的来说,本次实验不仅掌握了 iSula 的基本操作,还为后续深入学习容器编排、镜像优化等高级内容打下了坚实基础。未来希望能在 openEuler 生态下探索更多容器相关技术,提升自己的系统运维与自动化能力。