runV - bring isolation to Docker
We are thrilled to announce the release of Docker and runV integration.
What is runV?
runV is a hypervisor-based implementation for OCI runtime, which functions similarly to runC. The difference is that runV does not use cgroups and namespaces, but a hypervisor to run the (Docker) image.
Traditional VMs are slow to boot and heavy on resources. However, they excel at strong isolation through having an independent guest kernel. The goal of runV is to “combine the best of both worlds”, e.g. the security of a VM and the speed of container. Currently runV (v0.6) is able to launch a Docker image in 100-300 milliseconds, and has comparable density to containers.
What is this integration about?
Simply put, it gives you a seamless experience to manage isolated “containers” with the standard
docker CLI (1.11) .
Though these are essentially ultra-light VMs, you will be able to access them like containers using
docker attach and
docker exec commands.
How to play with it?
Dependencies: - Kernel 4.0 or later - QEMU 2.1 or later
Build form source:
[root@localhost ~] cd $GOPATH/src/github.com/hyperhq [root@localhost ~] git clone https://github.com/hyperhq/runv/ [root@localhost ~] cd runv [root@localhost ~] ./autogen.sh [root@localhost ~] ./configure --without-xen [root@localhost ~] make [root@localhost ~] sudo make install
# in terminal #1 [root@localhost ~] runv-containerd --debug --driver libvirt --kernel /opt/hyperstart/build/kernel --initrd /opt/hyperstart/build/hyper-initrd.img # in terminal #2 [root@localhost ~] docker daemon -D -l debug --containerd=/run/runv-containerd/containerd.sock # in terminal #3 for trying it [root@localhost ~] docker run -ti busybox / # ls bin dev etc home lib proc root sys tmp usr var / # exit [root@localhost ~]
See you guys in our Booth (S20) at DockerCon Seattle.