VM(比如VirtualBox、VMware)的理念是在宿主的系统之上,自己虚拟了一个硬件平台,然后运行一个不同的 OS。这意味着它要求很多的资源,在一台机器上,你最多就跑几个虚拟机吧。
而 docker 是依托于宿主机提供的内核,仅仅把一个不同的 linux 发行版本所需的特性打包成一个 image, 这样子当你运行一个 ubuntu 镜像,你会感觉就是在一个 ubuntu 的操作环境里,但实际调用的系统接口都是来源于宿主机。所以当你运行一些内核相关的命令时,你就会发现一些端倪,比如 uname -a, 这时给出的信息肯定是宿主机的。
参考
我眼中的 Docker(一)docker、vm、lxc
http://blog.csdn.net/jcjc918/article/details/46486655
如何在Docker容器中运行GUI程序
http://www.linuxidc.com/Linux/2015-04/116477.htm
如何使用Docker部署Go Web应用程序
http://blog.csdn.net/horsefoot/article/details/51654785
开发者可以使用Docker做什么?
https://news.cnblogs.com/n/521208/
Docker学习笔记(3)– 如何使用Dockerfile构建镜像
http://blog.csdn.net/qinyushuang/article/details/43342553
Get Started with Docker
https://docs.docker.com/engine/getstarted/
Build your own image
https://docs.docker.com/engine/getstarted/step_four/
Docker中可以运行其他非linux系统吗?比如windows,OS X
https://www.zhihu.com/question/33266701
DockerCon Day 2:城里人玩镜像
http://blog.daocloud.io/dockercon-day-2-jessie-image/