Live data from Hacker News

How is Docker.io different from a normal virtual machine?

stackoverflow.com

1–10 of 111 posts

Re: How is Docker.io different from a normal virtual machine?

#2
I recently wrote an article that covers some of this ground: http://www.sitepoint.com/docker-for-rubyists/

The basic idea behind Docker is that you don't have to create another operating system in order to just separate your processes from each other. This leads to containers being much more lightweight than virtual machines but also significantly less powerful (i.e. powerful as in ability to do something, not in terms of performance) in some areas.

Re: How is Docker.io different from a normal virtual machine?

#3

I recently wrote an article that covers some of this ground: http://www.sitepoint.com/docker-for-rubyists/ The basic idea behind Docker is that you don't have to create another operating system in order to just separate your processes from each other. This leads to containers being much more lightweight than virtual machines but also significantly less powerful (i.e. powerful as in ability to do something, not in ter…

Any chance you can elaborate on:

"(i.e. powerful as in ability to do something, not in terms of performance)"

Do you mean smaller units of functionality which perform at good levels? For example, I wouldn't want to deploy a large, monolithic service this way?

Re: How is Docker.io different from a normal virtual machine?

#5
post #4

I've been having trouble figuring out the value-add of using Docker over Ubuntu's built-in LXC functionality [1]. [1] https://help.ubuntu.com/12.04/serverguide/lxc.html

Here's another Stack Overflow question which addresses that exact question: http://stackoverflow.com/questions/17989306/what-does-docker...

Re: How is Docker.io different from a normal virtual machine?

#7
Docker doesn't add a whole lot over what basic Linux containers (lxc and vserver) have offered for years. Having said that, the main benefit to Docker is a change in viewpoint from "virtual machine" to "application". Docker aims to make applications portably deployable to any Docker-machine. Since Docker uses lxc (aka Linux containers), it helps to understand a little how containers are different from other virtualization.

Conceptually, they are similar to Linux's chroots or FreeBSD's jails, which offer process isolation. Basically, they work with a lightweight virtual machine instead of a single process. Containers have lower overhead - they are virtualizing on the operating system level. Other virtualization technologies like Xen and KVM work on the CPU level, and provide a fully virtualized hardware setup to the virtual machine[s].

Post reply on HN