{"id":13839275,"url":"https://github.com/openeuler-mirror/iSulad","last_synced_at":"2025-07-11T03:32:07.846Z","repository":{"id":47647303,"uuid":"246005159","full_name":"openeuler-mirror/iSulad","owner":"openeuler-mirror","description":"[mirror]A light weight container runtime daemon for IOT and Cloud infrastructure.","archived":false,"fork":false,"pushed_at":"2024-10-15T23:52:53.000Z","size":271887,"stargazers_count":367,"open_issues_count":0,"forks_count":29,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-10-17T10:59:52.184Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://gitee.com/openeuler/iSulad","language":"C","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openeuler-mirror.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSES/LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-09T10:24:29.000Z","updated_at":"2024-10-15T23:52:57.000Z","dependencies_parsed_at":"2024-01-18T08:09:35.092Z","dependency_job_id":"07dd5844-bd06-4dee-9e0d-54dedddf8980","html_url":"https://github.com/openeuler-mirror/iSulad","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openeuler-mirror%2FiSulad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openeuler-mirror%2FiSulad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openeuler-mirror%2FiSulad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openeuler-mirror%2FiSulad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openeuler-mirror","download_url":"https://codeload.github.com/openeuler-mirror/iSulad/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225675073,"owners_count":17506273,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T17:00:17.607Z","updated_at":"2024-11-21T04:30:34.432Z","avatar_url":"https://github.com/openeuler-mirror.png","language":"C","funding_links":[],"categories":["Runtime"],"sub_categories":[],"readme":"[中文版入口](README_zh.md)\n\n\u003cimg src=\"./logo/iSulad-logo.svg\" alt=\"iSulad\" style=\"max-width: 50%;\" /\u003e\n\n\u003ca href=\"https://github.com/openeuler-mirror/iSulad\"\u003e\u003cimg src=\"https://img.shields.io/badge/github-iSulad-blue\"/\u003e\u003c/a\u003e ![license](https://img.shields.io/badge/license-Mulan%20PSL%20v2-blue) ![language](https://img.shields.io/badge/language-C%2FC%2B%2B-blue)\n\n## Introduction\n\n`iSulad` , written in C/C++, is a lightweight container engine that has the advantage of being light, fast and applicable to multiple hardware specifications and architecture. `iSulad` has a wide application prospect. \n\n## Architecture\n\nYou can see `iSulad`  architecture in [architecture](./docs/design/architecture.md).\n\n## Function\n\n### Runtime\n\n`iSulad` support multiple container runtimes, including lxc、runc and kata.\n\n#### lxc\n\nlxc is an open-source container  runtime written in C , which occupies less resources and is suitable for scenarios with high restrictions on noise floor resources. It is the default runtime of iSulad.\n\n#### runc\n\nrunc is an OCI-compliant runtime written in GO. When users use runc, the OCI runtime-spec version is required to be at least 1.0.0.\n\n#### kata-runtime\n\nkata-runtime start secure containers with lightweight virtual machines.\n\n### Image\n\n`iSulad` supports multiple image formats, including OCI and external rootfs.\n\n#### OCI\n\nOCI is a docker-compatible image format that supports pulling images and running containers from remote image repositories.\n\n#### external rootfs\n\nExternal rootfs allows users to prepare a bootable `root fs` directory, which is mainly used in system container scenarios.\n\n### Operation Interface\n\n`iSulad` provides two different interfaces for image and container management operations: CLI and CRI.\n\n#### CLI\n\nCLI uses the command line to manage images and containers. It is a standard C/S architecture model. iSula performs as an independent command line client that talks to the iSulad daemon.\n\nThe commands provided by iSula cover most of the common application scenarios, including the operation interface of the container, such as run, stop, rm, pause, etc, as well as the related operations of the image, such as pull, import, rmi, etc.\n\n#### CRI\n\nCRI (Container Runtime Interface) implementer can work seamlessly with K8s.\n\nCRI interface is implemented based on gRPC. iSulad implemented CRI gRPC Server following CRI interface standards. CRI gRPC Server includes runtime service and image service, which are used to provide container runtime interface and image operation interface respectively. CRI gRPC Server listen on a local unix socket, and the K8s component kubelet runs as a gRPC Client.\n\n## Getting Started\n\n- [usage guide: openeuler official manual](https://docs.openeuler.org/zh/docs/22.03_LTS/docs/Container/container.html)\n\n- [development guide](./docs/build_docs/README.md)\n\n- [user manual](./docs/manual/README.md)\n\n- [design docs](./docs/design/README.md)\n\n### Installing\n\nTo install `iSulad`, you can use `yum` package manager command with `openEuler` repository.\n\nOr write repository file by hand:\n\n```shell\n$ cat \u003c\u003c EOF \u003e /etc/yum.repos.d/openEuler.repo\n[openEuler]\nbaseurl=https://repo.openeuler.org/openEuler-22.03-LTS/OS/\\$basearch\nenabled=1\nEOF\n```\n\nInstall `iSulad` with yum:\n\n```shell\n$ yum install -y iSulad\n```\n\nif you found this error \n\n```txt\nRepository 'openEuler' is missing name in configuration, using id.\n\nYou have enabled checking of packages via GPG keys. This is a good thing.\nHowever, you do not have any GPG public keys installed. You need to download\nthe keys for packages you wish to install and install them.\nYou can do that by running the command:\n    rpm --import public.gpg.key\n\n\nAlternatively you can specify the url to the key you would like to use\nfor a repository in the 'gpgkey' option in a repository section and YUM\nwill install it for you.\n\nFor more information contact your distribution or package provider.\n```\n\nyou should run `rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-openEuler` first.\n\n### Configure\n\nConfigure the container image registry address, for example \"docker.io\" or other registry addrss.\n\n```shell\n# cat /etc/isulad/daemon.json\n.....\n    \"registry-mirrors\": [\n        \"docker.io\"\n    ],\n.....\n```\n\n### Run\n\n`iSulad` provides two ways to start the isulad:\n\n1. Use `systemd` service to start `iSulad`:\n\n```shell\n# restart the server with systemd command\n$ systemctl restart isulad \n```\n\n2. Use direct command to start `iSulad`:\n\n```shell\n# run the server with default socket name and default log level and images manage function\n$ sudo isulad \n```\n\n###  Operations on containers\n\n`iSulad` provides two operation interfaces for managing images and containers: CLI and CRI.\n\n#### **CLI**\n\nCLI, `iSulad` provides `isula` as client CLI\n\nHere are some sample commands to manager containers.\n\n- List all containers in your own environment:\n\n```shell\n$ sudo isula ps -a\n```\n\n- Create a container with busybox:\n\n  - You can create container `test` with default runtime:\n\n  ```sh\n  $ sudo isula create -t -n test busybox\n  ```\n\n  - You also can create container `testrunc` with **runc runtime**:\n\n  ```sh\n  $ sudo isula create -t --runtime runc -n testrunc busybox\n  ```\n\n\n- Start this container `test`:\n\n```shell\n$ sudo isula start test\n```\n\n- Kill the container `test`:\n\n```shell\n$ sudo isula kill test\n```\n\n- Remove the container `test`:\n\n```shell\n$ sudo isula rm test\n```\n\n#### CRI\n\n`iSulad` can be integrated with kubernetes through the CRI interface. For integrating with kubernetes, please refer to [k8s_integration](./docs/manual/k8s_integration.md).\n\n##  Performance\n\nUsing [ptcr](https://gitee.com/openeuler/ptcr) as a performance test tool , it shows the performance of `iSulad` in computers with different architectures.\n\n###  ARM\n\n- For searially with 10 containers, the performance radar chart of `iSula`, `docker`, `podman` is as follows:\n\n\u003cimg src=\"./docs/images/performance_arm_seri.png\" alt=\"ARM searially\" style=\"zoom:80%;\" /\u003e\n\n- For parallerlly with 100 containers, the performance radar chart of `iSula`, `docker`, `podman` is as follows:\n\n\u003cimg src=\"./docs/images/performance_arm_para.png\" alt=\"ARM parallerlly\" style=\"zoom:80%;\" /\u003e\n\n### X86\n\n- For searially with 10 containers, the performance radar chart of `iSula`, `docker`, `podman` is as follows:\n\n\u003cimg src=\"./docs/images/performance_x86_seri.png\" alt=\"X86 searially\" style=\"zoom:80%;\" /\u003e\n\n- For parallerlly with 100 containers, the performance radar chart of `iSula`, `docker`, `podman` is as follows:\n\n\u003cimg src=\"./docs/images/performance_x86_para.png\" alt=\"X86 parallerlly\" style=\"zoom:80%;\" /\u003e\n\n**More information can get from:**  [Performance test](https://gitee.com/openeuler/iSulad/wikis/Performance?sort_id=5449355)\n\n## Kernel Requirements\n\n`iSulad` runs on Kernels above 3.0.x.\n\n## Compatibility\n\nThe standard specification versions that `iSulad` is compatible with are as follows:\n\n- Compatible with OCI 1.0.0.\n- Compatible with CNI 0.3.0 - 1.0.0, iSulad supports CNI 1.0.0 from 2.1.4 version.\n- Compatible with lcr 2.1.x and above.\n\n## Kubernetes Support\n\n`iSulad` supports Kubernetes version 1.13 and above. The following table shows the compatibility between `iSulad` and Kubernetes.\nIt lists the minimum `iSulad` version required for some given Kubernetes versions.\n\niSulad Version | Kubernetes Version | CRI Version\n--- | --- | ---\nv2.0.0+ | v1.13-v1.18 | v1alpha2\nv2.0.8+ | v1.19-v1.22 | v1alpha2\nv2.1.4+ | v1.23-v1.29 | v1, v1alpha2\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopeneuler-mirror%2FiSulad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopeneuler-mirror%2FiSulad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopeneuler-mirror%2FiSulad/lists"}