7 ms·
Hyper – Hypervisor-agnostic Docker engine
- kj92 11y agoLooks interesting. How is this different from Clear Container several days ago?
- tbronchain 11y agoHi there, Thanks for your interest in Hyper! We also noticed the release announcement of Clear Containers a few days ago. There are 2 main differences, the first being on the technology used, CC using RKT, while Hyper is based on Docker images. There is also a difference in term of philosophy, where Hyper aims to be a technology-neutral open source solution. Hyper also have more features, such as running a Pod rather than one image on a hypervisor as a schedule unit. For more details, please check our FAQ (https://hyper.sh/faq.html https://hyper.sh/faq.html)
- philips 11y agoI don't feel this is correct. rkt can run docker images[1] and once the clear containers patches[2] land you will be able to run a docker image or an appc image inside of a VM under rkt. [1] https://github.com/coreos/rkt/blob/master/Documentation/commands.md#fetch-from-a-docker-registry https://github.com/coreos/rkt/blob/master/Documentation/comm... [2] https://github.com/coreos/rkt/pull/946 https://github.com/coreos/rkt/pull/946
- josephjacks 11y agoI think the question was specifically in the context of CC.
- deleted 11y ago[deleted]
- jacques_chester 11y agoIs this just a stripped down type-2 hypervisor guest kernel, or is there something else going on?
- gnawux 11y agoHi, It does not run a full guest OS on the hypervisor, instead, initrd itself launches a group of docker images, aka Pod on it.
- kj92 11y agoI like what you've done with Pod. Remember rkt has a similar concept, not sure why Docker doesn't have it.
- jzila 11y agoSo you're running all the containers on the initrd kernel?
- otoburb 11y agoI had the same question, and had to dig a little into the Google Pod documentation for this handy explanation: "In terms of Docker constructs, a pod consists of a colocated group of Docker containers with shared volumes."[1] Based on the above tidbit, each Pod contains a few containers, thus a Pod (and hence all of the containers in the Pod) will indeed be running on the initrd kernel from the HyperVM instance. The key point is that this applies for each HyperVM (i.e. one HyperVM launched per Pod). It seems the idea is that wherever you'd normally launch a container, you can now instead launch a lighweight VM that behaves like a container (i.e. fast to launch & small footprint) with default virtualization benefits. Basically, if you replace all instances of the term "HyperVM" with "ContainerVM", it may help to parse their explanations more easily. [1] https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/pods.md https://github.com/GoogleCloudPlatform/kubernetes/blob/maste...
- gnawux 11y agoA pod on a kernel/initrd, contains one or more docker images in different mount namespaces. The "containers" in pod share network and ipc namespace each other.
- neilellis 11y agoWould be nice to have this on Macs too no more crappy VirtualBox ;-)
- divideby0 11y agoYou can do Docker with VMWare using Docker Machine: docker-machine create -d vmwarefusion --vmwarefusion-boot2docker-url https://github.com/cloudnativeapps/boot2docker/releases/download/v1.6.0-vmw/boot2docker-1.6.0-vmw.iso https://github.com/cloudnativeapps/boot2docker/releases/down... my-docker-machine --vmwarefusion-memory 4096 --vmwarefusion-disk-size 30000
- bandrami 11y agoHave we reached Peak Container yet?
- tbronchain 11y agoHi there, I am not sure what do you mean by "Peak Container"?
- bandrami 11y agoSorry, it's a pun on "Peak Oil" (the idea that at some point we're going to pump and all the oil in the earth will be gone). Not a dig at Hyper in particular (which looks cool), just that the "containers as service configuration management" market is extremely saturated right now.
- tbronchain 11y agoThe idea behind hyper is to propose something slightly different, answering the security issues you can have with containers.
- deleted 11y ago[deleted]
- rhizome 11y agoWe need containers within which we can run different hypervisors.
- TickleSteve 11y agoIts turtles all the way down....
- markbnj 11y agoOh it may peak as a buzz word, but I think we'll be using them for a long time.
- mbreese 11y agoI like this idea. It's a stripped down VM capable of only running containers. There are a couple of downsides, compared to straight docker though - you have to go through the VM layer for disk io. So, if you have a shared volume, there will be a performance hit. However, you get a big boost for security. This type of tech could make it possible to use (Docker) containers in a true multi-tenant system. One question though - is it possible to specify the vmem and vcpus for the qemu VM? (Either from the command line or pod file?)
- tbronchain 11y agoHi, Thanks for your interest, and congratulations, you found the original motivations behind Hyper :) To anwer your question, yes, you can specify them. Check out the podfile documentation to know how https://docs.hyper.sh/reference/podfile.html https://docs.hyper.sh/reference/podfile.html
- mbreese 11y agoYep - there it is... I missed that when I first looked. Thanks! As an aside - do you have a feeling for how much processing CPU power or io speed is lost when running in the hyper VM?
- tbronchain 11y agohere you go: https://hyper.sh/faq.html https://hyper.sh/faq.html (performances section) Q: What are the performances of Hyper? Boot: Start a hyper Pod only takes less than 350 millisecond. CPU: CPU Performance overhead is about 0.4 percent. Mem: Memory Performance overhead is about 0.64 percent.
- feld 11y agoContainers have been used in multi-tenant systems for years in both Solaris and FreeBSD via zones and jails
- gnepzhao 11y ago
- lsllc 11y agoIs this just a cross platform boot2docker?
- tbronchain 11y agoHi, Hyper and Boot2docker are two really distinct products. The difference is, one (boot2docker) let you run containers on not compatible OSes, while the other one (Hyper) let you run each container, distinctly, in a dedicated VM. Hope that helps :)
- m_mueller 11y agoSorry, but I don't quite get it. What's the advantage over having a dedicated VM per container?
- neilellis 11y agoSpeed and resources https://hyper.sh/why-hyper.html https://hyper.sh/why-hyper.html
- tbronchain 11y agoIsolation, and security. As @mbreese perfectly said, "This type of tech could make it possible to use (Docker) containers in a true multi-tenant system." With Hyper, all your containers will run their own kernel, instead of sharing the host's one.
- techdragon 11y agoIt sounds like the shit Microsoft was gibbering about a little while ago, about how they would integrate their HyperV technology into their docker runtime
- scprodigy 11y agoHmm, I happen to know some details of that. It is actually a quite powerful technology with some out-of-box ideas.
- TheHippo 11y agoI like how the animation in the header of the website requires two of my CPU cores at full speed. Also offering piping to bash as first alternative for installing something.
- quesera 11y agoI agree with you on both counts, but still find your comment gratuitously negative. This looks like a very cool thing, and an important missing piece.
- dimino 11y agoIt's "gratuitously negative" to ask me to pipe a script I download from the Internet into bash directly. They really should, for security reasons, spend the 5 seconds it'd take to separate those into two commands, or come up with a better way to do things (which would probably take more than 5 or 30 seconds). Reminds me of pip (python packaging manager), who will, almost narcissistically, remind you about how important it is to use secure connections for python repos, and in fact will refuse to run without a bevy of flags set explicitly allowing any kind of insecure or unverified package, but first ask you to download and run a python script with an embedded binary, because that's the only way they could think of to get bootstrapping working.
- quesera 11y agoOh, believe me I know all about it. But drive-by potshots at other peoples' impressive work is gratuitously negative. Why not nitpick the copy editing, while we're here? Pipe to shell grinds my gears. At the very minimum, it should be replaced with `curl -o https://hyper.sh/install https://hyper.sh/install && bash install`, to at least validate that curl believes the http request returned OK. Realistically, that's no different from how all software everywhere is installed until/unless it's incorporated into a previously-trusted package manager repository.
- Gigablah 11y ago"Separate those into two commands"? That's it? Really? This just screams "cargo cult".
- zobzu 11y ago"When VMs take tens of seconds to boot, Hyper is able to launch instances in sub-second" tens of a second would be +- same as sub second ;)
- rimantas 11y agoTenths, maybe; tens—not so much.
- nostalgiac 11y ago>curl -sSL https://hyper.sh/install https://hyper.sh/install | bash Seriously? Developers need to stop sprouting this crap as an install method. Nobody in their sane mine should curl a script into bash to install a product.
- quesera 11y agoThat can be fixed in 30 seconds. The product is impressive, and it would be respectful to communicate your valid message respectfully.
- jaytaylor 11y agoI think it would've been cooler if the url were https://install.hyper.sh https://install.hyper.sh ;)
- gnawux 11y agoyou can try it now ;) cheers
- Meai 11y agoThere is no difference to running an executable. In fact, this is the BEST way to offer installation to users. He is literally showing you the source code so you can decide whether you actually want to run it or not. This stupid meme of not wanting to run scripts is just that: a meme.
- panhandlr 11y agoHow many production servers have you been responsible for in your lifetime? "There is no difference to running an executable. " ... There are these following differences. 1. That url, assuming no malicious 3rd-party/nation-state is spoofing the response, could return any different version of the installer resource at any given time. 2. That url might not always be available, for any number of reasons, and how is someone who wants to "discover" this software when they are looking through their available package list? 3. Who knows what that url is "suppose to do" ... there is no signing process, peer review process, nothing, you get whatever the apache server on the other side of that HTTP request wants to give you, and your gonna send that right into your root shell... 4. Unlike a package, sitting in my personal safe, self host, audited, self-verified debian package repository mirror ... this URL might not work tomorrow, it might not work at 3:35am when my primary server took a shit and i need to rebuild the whole stack... who knows what this URL will do in between subsequent runs... it could return 2 different things when I am trying to build a cluster of this product.
- zobzu 11y agoit seems very similar to clearcontainer that was announced a few days ago, i.e. interesting since both are much nicer than "traditional container" solutions. Now for the interesting stuff.. init process (C): https://github.com/hyperhq/hyperstart https://github.com/hyperhq/hyperstart Daemon (Go): https://github.com/hyperhq/hyper/tree/master/hyperdaemon https://github.com/hyperhq/hyper/tree/master/hyperdaemon Stuff to replace with overlayfs ;) https://github.com/hyperhq/hyper/tree/master/storage/aufs https://github.com/hyperhq/hyper/tree/master/storage/aufs
- gnawux 11y agoyes, we do not support overlayfs yet, but will. overlayfs is the future of unionfs, and aufs is the current. :)
- markhahn 11y agoWake me up when there's a Docker-independent hypervisor engine.
- tbronchain 11y agoHi there, not sure what you mean by Docker-independent hypervisor engine? Hyper uses Docker images format in order to ship containers, but is totally independent from Docker engine.
- MCRed 11y agoAre there good management and orchestration tools for Xen (or other hypervisor)? One of the things about Docker is that I'm having trouble finding good tools for managing an infrastructure of Docker containers. I know this is being worked on, yes, but it's early days and I need something that is mature. If anyone can suggest Xen admin stuff, I'd really appreciate it.
- Tiksi 11y agoThere's xenserver (tools) which was opensourced a little while ago. Most configuration management systems also have modules for managing xen. At the moment I'm writing some CFM code using saltstack with the xapi and virt for my own stuff, as I'm not a huge fan of the xenserver and xen cloud platform abstractions.
- krakensden 11y agolibvirt?
- throwaway5522 11y agoHmm, something seems strangely familiar about this code. https://github.com/hyperhq/hyper/blob/master/storage/aufs/aufs.go#L118 https://github.com/hyperhq/hyper/blob/master/storage/aufs/au... https://github.com/docker/docker/blob/master/daemon/graphdriver/aufs/aufs.go#L420 https://github.com/docker/docker/blob/master/daemon/graphdri...
- quesera 11y agoLuckily, the Apache Public License is compatible with itself.
- tbronchain 11y agoHi. Indeed, we are using part of Docker's code as a base, as we are working on the interoperability between both.
- mrmondo 11y agoThe first you see when you load that page is a website telling you to curl to bash. The next thing you see is a gif that didn't seem to tell me what it actually is. I notice that it uses Kernel 4.0.1 - which is great that they're using something modern, however 4.0.1 has a critical EXT4 bug that causes major data corruption. This has been fixed in 4.1 RC5. A lot of typos throughout the site too: - "Subscribe to the lastest Hyper news." - " Pod is the first class in Hyper" I won't even mention the use of comic sans on their diagrams...
- kordless 11y ago> I won't even mention the use of comic sans on their diagrams... Actually, you just did.
- resouer 11y agoAfter read through the install scripts, I admit I really like this method. Doesn't know why guys argues about that. If you need specific version or release, just checkout it out from github, after all, it's opensource man.
- emilevauge 11y agoHi, great works! I have one question: how do you access your container ports after running them ? If I do a hyper run nginx for example ? Am I supposed to use podfiles for that ?
- deleted 11y ago[deleted]
- boynux 11y agoThat looks very interesting, I'm wondering how "container management" will be handled and how scalable is it?
- tbronchain 11y agoHi there, Thanks for your interest :) Container management is handled the same way it is in Docker (Hyper directly uses the Docker hub, and you can directly `hyper pull` Docker images). About scalability, it is, again, very similar to Docker's scalability. Hyper isn't compatible with some Docker components such as Compose or Swarm yet, but it is on the roadmap. You can try Hyper following the installation procedure: https://docs.hyper.sh/get_started/install.html https://docs.hyper.sh/get_started/install.html