什么是虚拟机?
虚拟机是一个相对的概念,我们平常使用的就是物理机,而虚拟机是在虚拟软件/平台中虚拟出来的一个操作系统。
如果一个电脑想装好多个操作系统,这个时候可以选择直接装,但是在开机后只能使用其中一个,想同时使用两个或多个操作系统,就可以选择在虚拟机里面安装。
虚拟机工作原理:
在物理机操作系统的基础上,虚拟机通过虚拟机监视器获取物理机的硬件资源,之后模拟出运行环境,运行虚拟机内的操作系统。
虚拟机使用场景:
1.运行特定版本操作系统(同时开win和linux)
2.隔离物理机,测试软件/脚本/病毒(不会影响到物理机的文件数据,有点像影子系统,不过影子系统的操作会丢失,还是在虚拟机里面测试更直接)
3.提升资源利用率(本质上就是共享硬件)
docker容器技术
简单来讲理解,每个用户使用程序时都有对应的账号与个人信息,单独的端口/容器
应用场景:
1.开箱即用(是很多的下载命令集成,例如pip)
2.快速部署(通过简短的命令实现自动化的环境安装配置,可快速下载软件,也可下载操作系统)
3.可移植性强(解决软件跨平台问题,有的软件只能在win运行但是不能在mac上运行,这个时候可以用docker来帮助下载 )
4.环境隔离(隔离效果没有虚拟机强,有安全漏洞,可能会影响到物理机)
虚拟机和docker容器对比:
1.启动速度:
docker启动是秒级的,但是虚拟机开机一般为分钟级
2.部署环境速度:
docker快,而虚拟机慢
3.隔离性:
docker是进程级别的隔离,虚拟机是系统级别的隔离,虚拟机更安全一些
4.硬盘使用:
docker以MB为单位,虚拟机一般GB为单位
5.性能:
docker损耗少,单机支持几千个容器创建,虚拟机的损耗弱于原系统,一般下载了几十个系统就够呛了
更通俗地比喻,考试的时候会发三张纸,一张试卷,一张答题卡,一张草稿纸,物理机就是答题卡,直接影响你的作答情况和心情,虚拟机就是草稿纸,乱涂乱画(使劲造)也没事,docker容器技术就是试卷,在上面打草稿,虽然方便,但是可能不小心就把题目改了,影响到答题卡(物理机)的作答,所以还是推荐使用草稿纸(虚拟机)打草稿,当然不排除有的时候,docker可能会更方便一点。
以上为个人拙见,如有不妥,烦请各位指出,谢谢~v~
补充说明:docker可以提供一个打包好的环境,直接使用就行,但是虚拟机只是提供一个系统,软件什么的还是需要自己安装(可能会很麻烦,比如本人下载CAD的时候就费了不少功夫)