Home

Awesome

Build Status

HyperContainer - Hypervisor-agnostic Docker Runtime

This repo contains two parts: the daemon of HyperContainer hyperd and the CLIhyperctl.

What is HyperContainer?

HyperContainer is a hypervisor-agnostic technology that allows you to run Docker images on plain hypervisor.

Why HyperContainer?


HyperContainer combines the best from both worlds: VM and Container.

-ContainerVMHyperContainer
IsolationWeak, shared kernelStrong, HW-enforcedStrong, HW-enforced
PortableYes, but kernel dependent sometimesNo, hypervisor dependentYes, hypervisor agnostic and portable image
BootFast, sub-secondSlow, tens of secondsFast, sub-second
PerformanceGreatOKGood, minimal resource footprint and overhead
ImmutableYesNo, configuration management requiredYes, only kernel+image
Image SizeSmall, MBsBig, GBsSmall, MBs
CompatibilityNo, need new toolsGreat, everything just worksGood, it is still a "Machine", much less changes
MatureNot yetProduction ready, SDN, SDS, LiveMigration, etc.Yes, just plug-&-play
ROIRebuild everything with container-Reuse your virtual infrastructure

*BYOK = bring your own kernel

Requirements

Installation

Ensure you are running Linux (kernel 3.8 or later) and have QEMU (version 2.0 or later) installed. Then download the binaries and install them (hyper-container and hyperstart) directly.

For the detail of installation, please refer to the documents.

For information on using the command line, just type hyperctl. You may use hyperctl <command> --help for detailed information on any specific command.

Build From Source

Clone hyperd in GoPath

> mkdir -p ${GOPATH}/src/github.com/hyperhq
> cd ${GOPATH}/src/github.com/hyperhq
> git clone https://github.com/hyperhq/hyperd.git hyperd

And make sure you have go (>= 1.7) , device-mapper-devel, and autotools, go into the hyperd dir

> ./autogen.sh
> ./configure
> make

Then you can find the binaries hyperd daemon and hyperctl cmdline tool in current directory. Before running those commands, a config file needs to be placed at /etc/hyper/config directory, and you can find a sample under ${TOP}/package/dist/etc/hyper/config. Kernel and Initrd are required for starting the hyperd daemon, you can find those files from HyperStart project.

Find out more

Contact Us

Found a bug, want to suggest a feature, or have a question? File an issue. When reporting a bug, please include which version of hyperd you are running, as shown by hyperctl --version.