6 ms·
Can someone clarify how this compares to LXD, released by Canonical in Ubuntu 16.04? A lot of the keywords and concepts seem similar.
by markbnj 10y ago
Can someone clarify how this compares to LXD, released by Canonical in Ubuntu 16.04? A lot of the keywords and concepts seem similar.
- mjg59 10y agoThey're pretty much the exact opposite of each other. LXD is something that runs things that look like VM images when they're actually running the same kernel - this is creating full (albeit lightweight) VMs to run container images. The broad approach isn't new (https://clearlinux.org/features/clear-containers https://clearlinux.org/features/clear-containers describes Intel's Clear Containers work which allows you to use rkt to run containers in individual lightweight VMs), but the trick in this case is to perform the isolation at the pod level (ie, a collection of functionally related containers) rather than the individual container level. (Edit: Apparently the Docker support for Clear Containers hasn't gone upstream, so dropped the reference to it)
- philips 10y agoThe idea is to integrate LXD into OpenStack as a "lightweight VM". So, LXD runs a system with a full init system and executes them inside of a Linux Container. Another term for this is a "system container". Kubernetes is designed for running Application Container images (e.g. docker, oci, appc) and in this case those containers are running not as Linux containers on a shared Kernel but inside of a VM with Xen/Hypernetes. Another implementation of this "app container in a VM" concept is Clear Containers which is available in rkt[1] and can, like Hyper, run the application container image formats (docker/appc). This is all a bit confusing so let me know if this helps :) [1] https://coreos.com/blog/rkt-0.8-with-new-vm-support/ https://coreos.com/blog/rkt-0.8-with-new-vm-support/
- markbnj 10y agoAwesome guys, that helps a lot. Thanks for the info and links.
- resouer 10y agoAnd another different side of HyperContainer is that it follows OCI spec, check the runv project here: https://github.com/hyperhq/runv/ https://github.com/hyperhq/runv/, so technically speaking, it's a hypervisor version of OCI, just like docker is a linux container version of OCI. Seems rkt/clear linux or LXD does not.
- philips 10y agoThe OCI Runtime spec is still a work in progress. Docker and HyperV are implementing parts of the current pre-release versions of the OCI Runtime spec. You can use OCI Runtime bundles with rkt if you use the oci2aci[1] tool and rkt will be a full OCI runtime once the OCI Runtime and Image spec mature. We can use help to get these OCI projects[2][3] to v1.0 if you can spare cycles! [1] https://github.com/huawei-openlab/oci2aci https://github.com/huawei-openlab/oci2aci [2] https://github.com/opencontainers/runtime-spec https://github.com/opencontainers/runtime-spec [3] https://github.com/opencontainers/image-spec https://github.com/opencontainers/image-spec
- shykes 10y agoActually it's runc that is the linux container version of OCI. Docker is a higher-level abstraction which calls runc by default but can call any OCI-compliant runtime, including runv. See https://blog.docker.com/2016/04/docker-engine-1-11-runc/ https://blog.docker.com/2016/04/docker-engine-1-11-runc/
- resouer 10y agoIt will be great to see if I can use dockerd start runv containers!!!!
- scprodigy 10y agoLXD = VM-like Linux container HyperContaineer = (Docker) Container-like ultra-light VM Make sense?