This repo contains two parts: the daemon of HyperContainer
hyperd
and the CLIhyperctl
.
HyperContainer is a hypervisor-agnostic technology that allows you to run Docker images on plain hypervisor.
HyperContainer combines the best from both worlds: VM and Container.
- | Container | VM | HyperContainer |
---|---|---|---|
Isolation | Weak, shared kernel | Strong, HW-enforced | Strong, HW-enforced |
Portable | Yes, but kernel dependent sometimes | No, hypervisor dependent | Yes, hypervisor agnostic and portable image |
Boot | Fast, sub-second | Slow, tens of seconds | Fast, sub-second |
Performance | Great | OK | Good, minimal resource footprint and overhead |
Immutable | Yes | No, configuration management required | Yes, only kernel+image |
Image Size | Small, MBs | Big, GBs | Small, MBs |
Compatibility | No, need new tools | Great, everything just works | Good, it is still a "Machine", much less changes |
Mature | Not yet | Production ready, SDN, SDS, LiveMigration, etc. | Yes, just plug-&-play |
ROI | Rebuild everything with container | - | Reuse your virtual infrastructure |
*BYOK = bring your own kernel
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.
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.
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
.