Skip to content

Nydus - the Dragonfly image service, providing fast, secure and easy access to container images.

License

Apache-2.0, BSD-3-Clause licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
BSD-3-Clause
LICENSE-BSD-3-Clause
Notifications You must be signed in to change notification settings

yawqi/image-service

Repository files navigation

Nydus: Dragonfly Container Image Service

The nydus project implements a user space filesystem on top of a container image format that improves over the current OCI image specification, in terms of container launching speed, image space, and network bandwidth efficiency, as well as data integrity.

The following benchmarking result shows the performance improvement compared with the OCI image for the container cold startup elapsed time on containerd. As the OCI image size increases, the container startup time of using Nydus image remains very short.

Container Cold Startup

Nydus' key features include:

  • Container images are downloaded on demand
  • Chunk level data deduplication
  • Flatten image metadata and data to remove all intermediate layers
  • Only usable image data is saved when building a container image
  • Only usable image data is downloaded when running a container
  • End-to-end image data integrity
  • Compatible with the OCI artifacts spec and distribution spec
  • Integrated with existing CNCF project Dragonfly to support image distribution in large clusters
  • Different container image storage backends are supported

Currently the repository includes following tools:

  • A nydusify tool to convert an OCI format container image into a nydus format container image
  • A containerd-nydus-grpc daemon to serve as containerd remote snapshotter and setup container rootfs with nydus
  • A nydus-image tool to convert an unpacked container image into a nydus format image
  • A nydusd daemon to parse a nydus format image and expose a FUSE mountpoint for containers to access

Build Binary

# build debug binary
make
# build release binary
make release
# build static binary with docker
make docker-static

Build Nydus Image

Build Nydus image from directory source: Nydus Image Builder.

Convert OCI image to Nydus image: Nydusify.

Build Nydus Snapshotter

Build and run Nydus snapshotter: Nydus Snapshotter

Run Nydusd Daemon

Run Nydusd Daemon to serve Nydus image: Nydusd.

Learn Concepts and Commands

Browse the documentation to learn more. Here are some topics you may be interested in:

Community

Welcome to share your use cases and contribute to Nydus project. You can reach the community via Dingtalk and Slack

Any bug report, feature requirement, and technique discussion and cooperation are welcomed and expected!

  • Slack

    Join our Slack workspace

  • Dingtalk

    Join nydus-devel group by clicking URL from your phone.

    You can also search our talking group by number 34971767 and QR code

About

Nydus - the Dragonfly image service, providing fast, secure and easy access to container images.

Resources

License

Apache-2.0, BSD-3-Clause licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
BSD-3-Clause
LICENSE-BSD-3-Clause

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Rust 74.0%
  • Python 11.7%
  • Go 11.5%
  • C 1.9%
  • Makefile 0.5%
  • Dockerfile 0.3%
  • Shell 0.1%