isula-buildisula-build是iSula容器团队推出的容器镜像构建工具,支持通过Dockerfile文件快速构建容器镜像。 isula-build采用服务端/客户端模式,其中isula-build 为客户端,提供了一组命令行工具,用于镜像构建及管理等;isula-builder 为服务端,用于处理客户端管理请求,作为守护进程常驻后台。 isula-build提供的命令行工具提供了很多功能,例如: - 通过
Dockerfile 构建容器镜像(build) - 查看本地持久化构建镜像(image)
- 导入容器基础镜像(import)
- 导入层叠镜像(load)
- 删除本地持久化镜像(rm)
- 导出层叠镜像(save)
- 给本地持久化镜像打标签(tag)
- 拉取镜像到本地(pull)
- 将本地镜像推送到远程仓库(push)
- 查看运行环境与系统信息(info)
- 登录远端镜像仓库(login)
- 退出远端镜像仓库(logout)
- 版本查询(version)
除此之外,我们提供了以下能力: - 兼容
Dockerfile 语法 - 支持文件属性扩展,如
IMA 等 - 支持不同种类镜像导出方式,如导出到本地tar包(docker-archive)、iSulad
- ...
详细文档开始在openEuler上安装从源码开始编译安装为了顺利从源码编译,以下包需要被安装在你的操作系统中: - make
- golang(大于等于1.15版本)
- btrfs-progs-devel
- device-mapper-devel
- glib2-devel
- gpgme-devel
- libassuan-devel
- libseccomp-devel
- git
- bzip2
- systemd-devel
你可以通过yum 安装这些依赖: sudo yum install make btrfs-progs-devel device-mapper-devel glib2-devel gpgme-devel libassuan-devel libseccomp-devel git bzip2 systemd-devel golang 使用git 拉取源代码: git clone https://gitee.com/openeuler/isula-build.git 进入源码目录开始准备编译: 编译成功之后,你可以通过该命令将编译完毕的二进制以及相关配置文件安装到系统中: 通过RPM包安装isula-build 目前已经收录在openEuler的官方源中,你可以使用yum 或者rpm 安装该包:
使用yum sudo yum install -y isula-build 注意: 需要先enable repo配置的update部分你可以在openEuler repo list中找到对应的yum源进行安装
使用rpm 下载isula-build的rpm包进行安装 sudo rpm -ivh isula-build-*.rpm 运行守护进程以系统服务运行如果需要使用systemd 进行管理isula-build,请参考以下步骤: sudo install -p -m 640 ./isula-build.service /etc/systemd/system/isula-build.servicesudo systemctl enable isula-buildsudo systemctl start isula-build 直接运行二进制你也可以直接运行isula-builder二进制开启服务: sudo isula-builder --dataroot="/var/lib/isula-build" 构建容器镜像前提为了正确构建容器镜像,容器运行时runc 是必要的 你可以通过安装docker 或者docker-runc 来获取runc 二进制 或者 sudo yum install docker-runc 构建镜像以下是一个简单的例子教你如何去构建一个容器镜像,更多的详细操作可以参考使用指南 创建一个构建工作目录,编写一个简单的dockerfile: FROM alpine:latestLABEL foo=barCOPY ./* /home/dir1/ 在构建工作目录中构建镜像 $ sudo isula-build ctr-img build -f Dockerfile .STEP 1: FROM alpine:latestSTEP 2: LABEL foo=barSTEP 3: COPY ./* /home/dir1/Getting image source signaturesCopying blob sha256:e9235582825a2691b1c91a96580e358c99acfd48082cbf1b92fd2ba4a791efc3Copying blob sha256:dc3bca97af8b81508c343b13a08493c7809b474dc25986fcbae90c6722201be3Copying config sha256:9ec92a8819f9da1b06ea9ff83307ff859af2959b70bfab101f6a325b1a211549Writing manifest to image destinationStoring signaturesBuild success with image id:9ec92a8819f9da1b06ea9ff83307ff859af2959b70bfab101f6a325b1a211549 列出本地镜像$ sudo isula-build ctr-img images----------------- ----------- ---------------- ---------------------------------------------- REPOSITORY TAG IMAGE ID CREATED------------------ ---------- ---------------- ---------------------------------------------- <none> latest 9ec92a8819f9 2020-06-11 07:45:39.265106109 +0000 UTC 移除镜像$ sudo isula-build ctr-img rm 9ec92a8819f9Deleted: sha256:86567f7a01b04c662a9657aac436e8d63ecebb26da4252abb016d177721fa11b 与容器引擎集成详情可见直接集成容器引擎 注意事项约束、限制以及与docker build 的差别可见使用注意事项 如何贡献我们很高兴能有新的贡献者加入! 在一切开始之前,请签署CLA协议 版权isula-build遵从Mulan PSL v2版权协议 |
请发表评论