84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
最近发现Docker很火啊,好像所有的服务都可以放到Docker里面来跑。貌似Docker也分很多不同的系统,Docker也是一种虚拟机(VM)技术吗?我看Docker的镜像都很小,是不是一种简化的虚拟机呢?
人生最曼妙的风景,竟是内心的淡定与从容!
docker相对于全虚拟化和半虚拟化而言,是所谓的操作系统级别的轻量级虚拟化技术。传统的虚拟化技术要生成一个环境的时间非常久,对于docker来说启动和销毁都是秒级的,而且它底层依赖的技术lxc(linux container)完全是内核特性,没有任何中间层开销,对于资源的利用率极高性能接近物理机。当然由于现在docker依赖于lxc,所以你只能在Linux上跑它(现在mac osx也支持,但是也只是用了virtualbox搞了个linux虚拟机啊罢了,相信我,现在在mac上使用它没有任何意义,即使为了docker开发,我也认为vagrant更合适,昨天刚尝试了一把boot2docker这个mac工具,体验真是不好)。
题主所谓的不同的系统其实是一个docker维护的镜像,对于lxc来说这个并不需要,但是docker维护了这套镜像更方便保存应用环境,做到无依赖的环境分发。另外你说的docker镜像都很小并不准确,docker的镜像大小是应用决定的,你可以让你的镜像保存任意东西,也就是可以是任意大小的。
docker是不是什么都适合做,目前来看并不是,对于精度要求很高的计费任务来说docker还不合适,但是对于普通的PaaS足够了,而且docker目前发展很迅速,相信特性的增强会很快。
Docker是一种应用容器,你可以把它理解为集装箱,就是把包括应用和应用的依赖在内的整个环境都打包在一起,这样安装部署也方便,同时每个开发人员使用的是统一的版本,不会因为依赖版本不同而踩到坑,也不用费心自己维护版本。
64位Linux上,Docker没有用虚拟机,所以性能很好。在64位的Linux系统以外的系统上(包括Windows,Mac OS X),Docker利用了虚拟机技术。
docker做到了PAAS即平台即服务,docker在64位linux上使用的是lxc内核虚拟化也就是轻量级的虚拟化,与VM相比不需要对硬件进行仿真就可以共享跟主机一样的操作系统,并且有AUFS和lXC来虚拟化,加入一个ubuntu的镜像是265MB,你要再VM主机新建1000个就需要265000MB内存,但是docker共享容量也就需需要256多一点,如果你在linux上跑VMware相信你会看主机内存的消耗是比较大的,一个亚马逊EC2 512MB内存单核的云主机开5个docker无压力,你要是跑5个vmware那可费劲了
以前看到的一片文章,很详细。http://tiewei.github.io/cloud/Docker-Getting-Start/
Docker 是基于 LXC 的,它属于进程级的虚拟化方案,从宿主的机器看,每个运行的 Docker 都是一个进程。
Xen/OpenVZ 这类是系统级的虚拟化方案。从宿主的机器看,允许都是一个一个虚拟机。
这里有个更详细的比较:http://goldmann.fedorapeople.org/tmp/docker-preso/#/5
docker相对于全虚拟化和半虚拟化而言,是所谓的操作系统级别的轻量级虚拟化技术。传统的虚拟化技术要生成一个环境的时间非常久,对于docker来说启动和销毁都是秒级的,而且它底层依赖的技术lxc(linux container)完全是内核特性,没有任何中间层开销,对于资源的利用率极高性能接近物理机。当然由于现在docker依赖于lxc,所以你只能在Linux上跑它(现在mac osx也支持,但是也只是用了virtualbox搞了个linux虚拟机啊罢了,相信我,现在在mac上使用它没有任何意义,即使为了docker开发,我也认为vagrant更合适,昨天刚尝试了一把boot2docker这个mac工具,体验真是不好)。
题主所谓的不同的系统其实是一个docker维护的镜像,对于lxc来说这个并不需要,但是docker维护了这套镜像更方便保存应用环境,做到无依赖的环境分发。另外你说的docker镜像都很小并不准确,docker的镜像大小是应用决定的,你可以让你的镜像保存任意东西,也就是可以是任意大小的。
docker是不是什么都适合做,目前来看并不是,对于精度要求很高的计费任务来说docker还不合适,但是对于普通的PaaS足够了,而且docker目前发展很迅速,相信特性的增强会很快。
Docker是一种应用容器,你可以把它理解为集装箱,就是把包括应用和应用的依赖在内的整个环境都打包在一起,这样安装部署也方便,同时每个开发人员使用的是统一的版本,不会因为依赖版本不同而踩到坑,也不用费心自己维护版本。
64位Linux上,Docker没有用虚拟机,所以性能很好。在64位的Linux系统以外的系统上(包括Windows,Mac OS X),Docker利用了虚拟机技术。
docker做到了PAAS即平台即服务,docker在64位linux上使用的是lxc内核虚拟化也就是轻量级的虚拟化,与VM相比不需要对硬件进行仿真就可以共享跟主机一样的操作系统,并且有AUFS和lXC来虚拟化,加入一个ubuntu的镜像是265MB,你要再VM主机新建1000个就需要265000MB内存,但是docker共享容量也就需需要256多一点,如果你在linux上跑VMware相信你会看主机内存的消耗是比较大的,一个亚马逊EC2 512MB内存单核的云主机开5个docker无压力,你要是跑5个vmware那可费劲了
以前看到的一片文章,很详细。
http://tiewei.github.io/cloud/Docker-Getting-Start/
Docker 是基于 LXC 的,它属于进程级的虚拟化方案,从宿主的机器看,每个运行的 Docker 都是一个进程。
Xen/OpenVZ 这类是系统级的虚拟化方案。从宿主的机器看,允许都是一个一个虚拟机。
这里有个更详细的比较:http://goldmann.fedorapeople.org/tmp/docker-preso/#/5