1、总结: Docker和传统虚拟机的差异
1、启动速度对比
vm # 一般几十秒或几分钟
docker # 几秒或几十毫秒
2、占用内存大小对比
vm # 几个G或几十个G
docker # mb
2、Docker 特点1:简化部署
现存问题:
1、传统的软件开发与发布环境复杂,配置繁琐,经常会出现:代码在开发环境可以运行,一旦部署到服务器上就运行不了的问题。
2、这是一个很常见的问题,现实中,同一个系统在不同的环境中部署(开发环境、测试环境、生产环境等),每一个环节都有可能出现各种问题,如:Mysql在测试环境安装报错,在开发环境下安装正常,我们往往在这方面浪费很多的时间。
优化方案:
1、Docker可以在各个环境中实现一键安装,例如:一键安装Linux、一键安装Mysql、一键安装Nginx等。
3、Docker 特点2:轻量级虚拟化
1、关于容器和虚拟化,常见的传统虚拟技术工具有 VMware、VirtualBox等工具。
特点:
1、传统虚拟工具本身比较大,很占内存。
2、先虚拟出一个操作系统,然后在操作系统上完成各种各样的配置。
3、虚拟机需要重启,虚拟机里边的操作系统需要处理新加入的资源,如磁盘等,都需要重新分区。
缺点:不能充分的利用物理机的性能。
2、Docker不同于VMware、VirtualBox等这些虚拟技术。
特点:它运行在操作系统之上的用户空间,所有的容器都共用一个系统内核甚至公共库,容器引擎提供了进程级别的隔离,让每个容器都像运行在单独的系统之上,但是又能够共享很多底层资源。
优点:Docker虚拟化要比传统的更为轻量、快速和易于管理。
4、Docker 特点3:程序可移植
1、Docker 是基于容器的平台,允许高度可移植性。
2、Docker 容器可以在开发人员的本机上、数据中心的物理或虚拟机上、云服务上、混合环境中运行。
5、 Docker和传统容器的差异
1、Docker早起基于LXC,后来基于自研的libContainer,Docker对于传统容器做了许多优化,如:
1、跨平台的可移植性
2、面向应用
3、版本控制
4、组件复用
5、共享性
6、工具生态系统