相对于虚拟机,容器优势对比
特性 | 容器 | 虚拟机 |
---|---|---|
启动 | 秒级 | 分钟级 |
硬盘使用 | 一般为 MB | 一般为 GB |
性能 | 接近原生 | 弱于 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
Docker
是软件工程领域的“标准化”交付组件,最恰到好处的类比是“集装箱”。
集装箱将零散、不易搬运的大量物品封装成一个整体,集装箱更重要的意义在于它提供了一种通用的封装货物的标准,卡车、火车、货轮、桥吊等运输或搬运工具采用此标准,隧道、桥梁等也采用此标准。以集装箱为中心的标准化设计大大提高了物流体系的运行效率。
传统的软件交付物包括:应用程序、依赖软件安装包、配置说明文档、安装文档、上线文档等非标准化组件。 Docker
的标准化交付物称为“镜像”,它包含了应用程序及其所依赖的运行环境,大大简化了应用交付的模式。
类似于集装箱的“一次装箱,多次运输”, Docker
镜像可以做到“一次构建,多次交付”。当涉及到应用程序多副本部署或者应用程序迁移时,更能体现 Docker
的价值。
集装箱可以有效做到货物之间的隔离,使化学物品和食品可以堆砌在一起运输。 Docker
可以隔离不同应用程序之间的相互影响,但是比虚拟机开销更小。
实现更轻量级的虚拟化,方便快速部署
对于部署来说可以极大的减少部署的时间成本和人力成本
Docker
支持将应用打包进一个可以移植的容器中,重新定义了应用开发,测试,部署上线的过程,核心理念就是 Build once, Run anywhere。典型应用场景是开发运维上提供持续集成和持续部署的服务。
- 标准化应用发布,
Docker
容器包含了运行环境和可执行程序,可以跨平台和主机使用; - 节约时间,快速部署和启动,VM 启动一般是分钟级,
Docker
容器启动是秒级; - 方便构建基于
SOA
架构或微服务架构的系统,通过服务编排,更好的松耦合; - 节约成本,以前一个虚拟机至少需要几个G的磁盘空间,
Docker
容器可以减少到MB级; - 方便持续集成,通过与代码进行关联使持续集成非常方便;
- 可以作为集群系统的轻量主机或节点,在
IaaS
平台上,已经出现了CaaS
,通过容器替代原来的主机。
- 容器技术部署速度快,开发、测试更敏捷
- 提高系统利用率,降低资源成本。
如果你想订阅我的文章,可以微信扫码关注我的公众号【机智的程序员小熊】,我是一个爱思考的程序员,专注于开发、运维、云技术、计算、网络、云存储、数据库、linux等编程知识