• 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是否支持虚拟化技术。

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

  • 相关阅读:
    redis集群部署之codis 维护脚本
    redis 数据库维护之 key 大小获取
    用HAProxy和KeepAlived构建高可用的反向代理
    blender 2.8 [学习笔记-028] 编辑模式- 所有面整体切分
    blender 2.8 [学习笔记-027] 编辑模式- 切分
    blender 2.8 [学习笔记-026] 编辑模式- 切割
    blender 2.8 [学习笔记-025] 编辑模式- 偏移环切边
    blender 2.8 [学习笔记-024] 编辑模式- 环切
    blender 2.8 [学习笔记-023] 编辑模式-倒角
    blender 2.8 [学习笔记-023] 编辑模式-内插面
  • 原文地址:https://www.cnblogs.com/zhao123/p/10485027.html
Copyright © 2020-2023  润新知