Docker容器与虚拟机有什么区别( 二 )


容器比虚拟机使用更少的闲置资源,它们不运行完整的操作系统 。
容器在在云硬件(或虚拟机)中可以被复用,就像虚拟机在裸机上可以被复用 。
容器需要毫秒分配,虚拟机需要几分钟 。所以,你可以另配、重新平衡、释放以及使用容器比虚拟机的迭代更加迅速 。
如果每个容器运行的只有一个服务或者数据库,这是比较容易管理的 。而且比较容易监控性能,了解故障的影响,并预测成本 。
离目标进程越远,隔离会变得更昂贵 。虚拟机是伟大的,它通过抽象来增加并行,服务于多操作系统的使用情况以及业界最好的安全性 。但对于隔离,它们相当的昂贵,容器提供的隔离就便宜 。
服务器虚拟化vs Docker

Docker容器与虚拟机有什么区别

文章插图
 
服务器好比运输码头:拥有场地和各种设备(服务器硬件资源)
服务器虚拟化好比作码头上的仓库:拥有独立的空间堆放各种货物或集装箱
(仓库之间完全独立,独立的应用系统和操作系统)
Docker比作集装箱:各种货物的打包
(将各种应用程序和他们所依赖的运行环境打包成标准的容器,容器之间隔离)
Docker有着小巧、迁移部署快速、运行高效等特点,但隔离性比服务器虚拟化差:不同的集装箱属于不同的运单(Docker上运行不同的应用实例),相互独立(隔离) 。但由同一个库管人员管理(主机操作系统内核),因此通过库管人员可以看到所有集装箱的相关信息(因为共享操作系统内核,因此相关信息会共享) 。
服务器虚拟化就好比在码头上(物理主机及虚拟化层),建立了多个独立的“小码头”—仓库(虚拟机) 。其拥有完全独立(隔离)的空间,属于不同的客户(虚拟机所有者) 。每个仓库有各自的库管人员(当前虚拟机的操作系统内核),无法管理其它仓库 。不存在信息共享的情况
因此,我们需要根据不同的应用场景和需求采用不同的方式使用Docker技术或使用服务器虚拟化技术 。例如一个典型的Docker应用场景是当主机上的Docker实例属于单一用户的情况下,在保证安全的同时可以充分发挥Docker的技术优势 。对于隔离要求较高的环境如混合用户环境,就可以使用服务器虚拟化技术 。正则科技提供了丰富的Docker应用实例,满足您的各种应用需求,并且支持在已经安装了自在(Isvara)服务器虚拟化软件的主机上同时使用服务器虚拟化技术和Docker技术提供不同技术场景 。
原文: https://www.jianshu.com/p/50f48eb25215




推荐阅读