kraft
has been modeled after many
popular package managers and build tools with the explicit aim of making it
easy to build and manage your application as a unikernel.
Before beginning, it is important to familiarize yourself with the concept of a
unikernel and how unikernels differ from other runtime
mediums, including: containers, standard VMs and OSes (e.g. Linux). At the same
time, a general understanding of how a unikernel is constructed with
Unikraft will help you understand how to use
kraft
effectively.
Please let us know if you run into any issues by reaching out through one of the main communication channels or by filing an issue on GitHub. Happy krafting! 🐒
qemu/x86_64
#Start by using the interactive installer:
curl --proto '=https' --tlsv1.2 -sSf https://get.kraftkit.sh | sh
This will install the kraft
binary executable onto your host as well as
additional dependencies necessary for building and running Unikraft unikernels.
The installer detects your OS and suggests an appropriate installation
procedure.
For more information on customizing your installation of
kraft
, please refer to the complete installation guide.
To test your installation, you can try running our pre-built "Hello, World" unikernel on your machine by simply invoking the following command:
kraft run unikraft.org/helloworld:latest
If all goes well, you should be greeted with a message and some helpful tips. If things didn't go well, please check out our troubleshooting guide for more information and for frequently asked questions.
kraft -h
./^\ Build and use highly customized and ultra-lightweight unikernels.:[ ]:| = |/|/=\|\ Documentation: https://kraftkit.sh/(_:| |:_) Issues & support: https://github.com/unikraft/kraftkit/issuesv v' 'USAGEkraft [SUBCOMMAND] [FLAGS]BUILD COMMANDSbuild Configure and build Unikraft unikernelsclean Remove the build object files of a Unikraft projectfetch Fetch a Unikraft unikernel's dependenciesmenu Open's Unikraft configuration editor TUIprepare Prepare a Unikraft unikernelproperclean Completely remove the build artifacts of a Unikraft projectPACKAGING COMMANDSpkg Package and distribute Unikraft unikernels and their dependenciespkg ls List installed Unikraft component packagespkg pull Pull a Unikraft unikernel and/or its dependenciespkg push Push a Unikraft unikernel package to registrypkg source Add Unikraft component manifestspkg unsource Remove Unikraft component manifestspkg update Retrieve new lists of Unikraft components, libraries and packagesRUNTIME COMMANDSps List running unikernelsrm Remove one or more running unikernelsrun Run a unikernelstop Stop one or more running unikernelsLOCAL NETWORKING COMMANDSnet create Create a new machine networknet down Bring a network offlinenet inspect Inspect a machine networknet ls List machine networksnet rm Remove a networknet up Bring a network onlineMISCELLANEOUS COMMANDSlogin Provide authorization details for a remote serviceversion Show kraft version informationFLAGS--config-dir string Path to KraftKit config directory--containerd-addr string Address of containerd daemon socket--editor string Set the text editor to open when prompt to edit a file--events-pid-file string Events process ID used when running multiple unikernels (default "/var/kraftkit/events.pid")--git-protocol string Preferred Git protocol to use (default "https")-h, --help help for kraft--http-unix-sock string When making HTTP(S) connections, pipe requests via this shared socket--log-level string Log level verbosity (default "info")--log-timestamps Enable log timestamps--log-type string Log type (default "fancy")--manifests-dir string Path to Unikraft manifest cache--no-check-updates Do not check for updates--no-emojis Do not use emojis in any console output--no-parallel Do not run internal tasks in parallel--no-prompt Do not prompt for user interaction--pager string System pager to pipe output to--plugins-dir string Path to KraftKit plugin directory--runtime-dir string Directory for placing runtime files (e.g. pidfiles) (default "/var/kraftkit")--sources-dir string Path to Unikraft component cache--with-manifest strings Paths to package or component manifests (default [https://manifests.kraftkit.sh/index.yaml])--with-mirror strings Paths to mirrors of Unikraft component artifacts
Once installed and running, learn more about:
Feel free to ask questions, report issues, and meet new people.