Docker 和虚拟机VM的概念的区别


1.Docker 容器提供了基于进程的隔离;

VM 虚拟机提供了资源的完全隔离;

2.Docker 使用宿主操作系统的内核, 而Vm虚拟机使用独立的内核;

3.Docker的启动速度是秒级的, VM是分钟级的,

4.Docker的集成性比VM好;

理解Docker 和 VMs 的区别 

本质上的区别:

 

VM    Vitrual Machine  是在宿主机器,宿主物理机的操作系统上创建虚拟层,虚拟化的操作系统,虚拟化的仓库,然后再安装应用,

Container   Docker容器, 在宿主机器,宿主操作系统上创建Docker 引擎,在引擎的基础上再安装应用。

Docker  容器提供了基于进程的隔离,而VM虚拟机提供了资源的完全隔离容器使用宿主操作系统的内核,而虚拟机使用独立的内核;

比较两者所占用的资源 

VM中Ubuntu所占内存

 

Docker容器中Ubuntu镜像文件所占内存

 

 Startup

Docker 再宿主机器的操作系统上创建Docker 引擎, 直接在宿主主机的操作系统上调用硬件资源,而不是虚拟化操作系统和硬件资源,所以速度快一些;

拉取一个Docker的ubuntu 镜像文件, 运行一下就知道 速度是秒级的

VM的开启是分钟级别的, 一台VM 开启 大概需要3分钟的样子

Intergration

Docker的集成性比VM好

Docker的特点:

1.上手快

Copy-On-Write

Docker 程序拥有很高的性能, 同时同一台宿主机中也可以运行更多的容器。使用户尽可能的充分利用系统资源

2.职责的逻辑分类

使用 Docker,开发人员只需要关心容器中运行的应用程序,而运维人员只需要关心如 何管理容器。

Docker 设计的目的就是要加强开发人员写代码的开发环境与应用程序要部署 的生产环境一致性。

Docker 在保持开发环境和 生产环境的一致性上面 功不可没。

降低 那种 开发时一切正常, 肯定是运维的问题, (测试环境都是正常的, 上线后出了问题就归结为运维的问题)

 

3.快速高效的开发生命周期

Docker 的目标之一就是缩短代码从开发、测试到部署、上线运行的周期,让你的应用 程序具备可移植性,易于构建,并易于协作。(通俗一点说,Docker 就像一个盒子,里面 可以装很多物件,如果需要这些物件的可以直接将该大盒子拿走,而不需要从该盒子中一件 件的取。)

 

4.鼓励使用面向服务的架构

Docker 还鼓励面向服务的体系结构和微服务架构。

Docker 推荐单个容器只运行一个应 用程序或进程,这样就形成了一个分布式的应用程序模型,在这种模型下,应用程序或者服 务都可以表示为一系列内部互联的容器,从而使分布式部署应用程序,扩展或调试应用程序 都变得非常简单,同时也提高了程序的内省性。(当然,可以在一个容器中运行多个应用程 序)

 

K8S 和Docker 的关系

 

1.

K8S 是一个开源的容器集群管理系统, 是一套自动化部署的工具

Docker 是一个开源的应用容器引擎, 是一种容器化技术。

2.

docker是容器层面的,kubernetes是容器编排层面的

 

K8S 提供了应用部署, 规划,更新,维护的一种机制。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM