zoukankan      html  css  js  c++  java
  • docker与虚拟机的区别

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

    虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

    docker与虚拟机的对比

    主操作系统(Host Operating System):所有主流的Linux发行版都可以运行Docker。对于MacOS和Windows,也有一些办法"运行"Docker。
    Docker守护进程(Docker Daemon):Docker守护进程取代了Hypervisor,它是运行在操作系统之上的后台进程,负责管理Docker容器。
    各种依赖:对于Docker,应用的所有依赖都打包在Docker镜像中,Docker容器是基于Docker镜像创建的。
    应用:应用的源代码与它的依赖都打包在Docker镜像中,不同的应用需要不同的Docker镜像。不同的应用运行在不同的Docker容器中,它们是相互隔离的。

    虚拟机与容器区别

    启动时间:Docker秒级启动,虚拟机分钟级启动。

    轻量级:docker镜像大小通常以M为单位,虚拟机以G为单位。容器资源占用小,要比虚拟机部署更快速。

    性能:docker共享宿主机内核,系统级虚拟化,占用资源少,没有Hypervisor层开销,性能基本接近物理机; 虚拟机需要Hypervisor层支持,虚拟化一些设备,具有完整的GuestOS,虚拟化开销大,因而降低性能,没有容器性能好。

    安全性:由于共享宿主机内核,只是进程级隔离,因此隔离性和稳定性不如虚拟机,docker具有一定权限访问宿主机内核,存在一定安全隐患。

    使用要求:VM基于硬件的完全虚拟化,需要硬件CPU虚拟化技术支持; docker共享宿主机内核,可运行在主流的Linux发行版,不用考虑CPU是否支持虚拟化技术。

    总结:虚拟机更擅长于彻底隔离整个运行环境。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。

  • 相关阅读:
    JabberNet -Jabbber .net客户端框架(XMPP协议)
    百度,腾讯,抖音,头条等互联网平台广告投放策略分析
    C# HttpWebRequest post提交数据
    eclipse汉化babel语言包安装
    C#技巧记录——持续更新
    ffmpeg 抓取屏幕
    WPF inkcanvas选中笔迹缩放、旋转,放大缩小画布、移动画布
    wpf虚线画刷
    wpf获取元素四个角对应的point
    wpf 装饰类
  • 原文地址:https://www.cnblogs.com/zhao123/p/10485027.html
Copyright © 2011-2022 走看看