7 ms·
Container is a chroot jail on steroids. VM is a QEMU process (also in a container).
by dmpk2k 11y ago
Container is a chroot jail on steroids. VM is a QEMU process (also in a container).
- logicallee 11y agohow can you run a totally different architecture from just a chroot jail? It doesn't make sense. How are you "on the metal" if you're running some totally different kernel from what the chroot-jail-host is running? You can't both be running the kernel on the metal...
- dmpk2k 11y agoI'm not clear on the question. The containers don't run a different kernel. They're just regular processes, in an fancy evolution of a chroot jail. If you want to run something like Windows or FreeBSD, then you break out QEMU.
- bcantrill 11y agoIt might help to see my presentation entitled "Docker and the future of containers in production"[1][2]; it covers the fundamental building blocks here, and should answer your questions. (If that presentation leaves you looking for more depth on the LX branded zone technology on SmartOS, see my Surge illumos day presentation from last fall.[3]) [1] https://www.joyent.com/developers/videos/docker-and-the-future-of-containers-in-production https://www.joyent.com/developers/videos/docker-and-the-futu... [2] http://www.slideshare.net/bcantrill/docker-and-the-future-of-containers-in-production http://www.slideshare.net/bcantrill/docker-and-the-future-of... [3] http://www.slideshare.net/bcantrill/illumos-lx http://www.slideshare.net/bcantrill/illumos-lx
- spdustin 11y agoQEMU runs in the container, in this case. So you've got a whole "yo dawg, I heard you like VM's in your containers" thing going on. I guess it's briefly described as a multi-tenant container system that isolates tenants by grouping them into parent containers? Maybe?
- bahamat 11y agoIt's not a different architecture. SmartOS is x86 based, as are the Linux binaries. What lx-brand zones do is present an alternate system call table to the binaries executed inside the zone. Those "lx" calls are compatible with the Linux system call table and get mapped and/or translated to illumos kernel system calls. Binaries don't know the difference.