大家都知道docker是容器,那么什么是容器?
基于linux 内核功能的虚拟化技术,虚拟机可以是多个OS,docker只能是linux,更加轻量级。
那么 docker 是什么呢?是能够把应用程序自动部署到容器的开源引擎
docker 跟原有的工具有何区别?
- 传统的部署模式是:安装(包管理工具或者源码包编译)->配置->运行;
- Docker的部署模式是:复制->运行。
docker 会对服务器端开发/部署带来什么变化?
实现更轻量级的虚拟化,快速部署
对于部署来说可以极大的减少时间和人力成本
Docker支持将应用打包进一个可以移植的容器中,重新定义了应用开发,测试,部署上线的过程,核心理念就是 Build once, Run anywhere。典型应用场景是开发运维上提供持续集成和持续部署的服务。
1)正规应用发布,docker容器包含了运行环境和可执行程序,跨平台和主机使用;
2)快速,快速部署和启动,VM启动一般是分钟级,docker容器启动是秒级;
3)方便构建基于SOA架构或微服务架构的系统,通过服务编排,更好的降低耦合度;
4)节约成本,一个虚拟机至少需要G级的磁盘空间,docker容器可以减少到MB级;
5)方便持续集成,通过与代码进行关联使持续集成非常方便;
6)可以作为集群系统的轻量主机或节点,在IaaS平台上,已经出现了CaaS,通过容器替代原来的主机。
docker 好处总结:
Docker是软件工程领域的“标准化”交付组件,最恰到好处的类比是“集装箱”。
集装箱将零散、不易搬运的大量物品封装成一个整体,集装箱更重要的意义在于它提供了一种通用的封装货物的标准,卡车、火车、货轮、桥吊等运输或搬运工具采用此标准,隧道、桥梁等也采用此标准。以集装箱为中心的标准化设计大大提高了物流体系的运行效率。
传统的软件交付物包括:应用程序、依赖软件安装包、配置说明文档、安装文档、上线文档等非标准化组件。Docker的标准化交付物称为“镜像”,它包含了应用程序及其所依赖的运行环境,大大简化了应用交付的模式。
类似于集装箱的“一次装箱,多次运输”,Docker镜像可以做到“一次构建,多次交付”。当涉及到应用程序多副本部署或者应用程序迁移时,更能体现Docker的价值。
集装箱可以有效做到货物之间的隔离,使化学物品和食品可以堆砌在一起运输。Docker可以隔离不同应用程序之间的相互影响,但是比虚拟机开销更小。
综上所述:容器技术部署速度快,开发、测试更敏捷;提高系统利用率,节约资源,高效率。
应用场景:简化配置,代码管道化管理,开发人员的生产化,应用隔离,服务合并,多租户,快速部署,效率高。