序言

在文章开始之前熊猫想先问一下你们,不晓得你们日常使用是Docker用的比较多还是虚拟机用的比较多呢?

每次提起虚拟化linux 输入法,各个平台就会有不同的声音,究竟是选择docker-compose.yml还是用VM快照,亦或则双修?这个应用应当布署在Docker还是虚拟机呢?三者似乎都能做到“隔离与效率”,Docker凭着着”集装箱思维”颠覆了传统虚拟化技术,现在若果谁家NAS自带没有Docker套件,这么销量一定是不高的;而虚拟机技术则是硬件级的虚拟化,拥有更强的安全性和稳定性,不过独立的操作系统资源也带来了更大的性能负担,这也是为何好多NAS玩家在使用虚拟机时会选择精简的操作系统镜像的诱因。

NAS虚拟化部署选择_docker与虚拟机的区别_虚拟机Docker对比

虽然这是上个月有粉丝问我的问题,他在考虑他布署的项目是直接用虚拟机布署还是通过Docker实现docker与虚拟机的区别,而明天熊猫借着粉丝这个问题,也就和你们一起阐述一下这三者的区别以及各自的优势特性。

硬件级虚拟化-虚拟机(VM)

本次使用的型号为铁威马的F6-424MAX,熊猫家里好多NAS设备,之所以考虑用铁威马来作为反例,虽然更多的是考虑目前我所晓得的NAS中只有铁威马的虚拟机应用VBOX没有进行大量魔改,拥有原生的一些特点和功能,而在Docker方面铁威马自身的DockerManager拥有健全的功能、极强的管理以及深度的权限。

NAS虚拟化部署选择_虚拟机Docker对比_docker与虚拟机的区别

NAS虚拟化部署选择_docker与虚拟机的区别_虚拟机Docker对比

首先来谈谈虚拟机应用,铁威马用到的为VirtualBOX,常常玩虚拟机的相信对这个软件并不陌生,作为一款开源的虚拟机软件,VirtualBOX拥有特别强的兼容性,图形化的界面也十分易用,对于资源的分配也很灵活,加上扩充性十分强,能直接借助到F6-424MAX的内置界面实现更丰富的扩充性,所以虽然好多NAS的虚拟机都用的VirtualBOX进行再度开发linux修改文件名,不过铁威马保留了VirtualBOX原生性。

NAS虚拟化部署选择_docker与虚拟机的区别_虚拟机Docker对比

通过TOS的应用商店下载应用,打开会手动弹出新的窗口,默认帐号和密码都为admin。VirtualBOX的整个管理都在新的界面进行,默认是英语界面,须要我们点击右上角的File-Preferences-Language去切换一下语言。

NAS虚拟化部署选择_docker与虚拟机的区别_虚拟机Docker对比

虚拟机的创建特别简单,将下载好的ISO镜像文件置于“VirtualBox”的虚拟机文件夹中,回到VirtualBOX虚拟机界面,点击新建,按照自己想创建的虚拟机环境选择对应的类型和版本即可,比如熊猫这儿用到的为Win10系统。

docker与虚拟机的区别_NAS虚拟化部署选择_虚拟机Docker对比

此后分配虚拟机的显存大小、虚拟硬碟大小。

NAS虚拟化部署选择_docker与虚拟机的区别_虚拟机Docker对比

虚拟机Docker对比_docker与虚拟机的区别_NAS虚拟化部署选择

在虚拟硬碟的文件类型上我们选择VirtualBOX的原生格式VDI就行,储存分配的话选择动态分配即可。

docker与虚拟机的区别_NAS虚拟化部署选择_虚拟机Docker对比

最后创建完成会得到这样的画面,是不是很像PVE的管理界面。由于默认创建是没有加载ISO镜像的,所以我们还须要给虚拟机指定镜像文件。右键虚拟机选择设置,在弹出的界面选择储存,默认是没有光碟,所以我们须要选择我们的ISO镜像文件。

NAS虚拟化部署选择_docker与虚拟机的区别_虚拟机Docker对比

网路设置选择桥接网卡,按照需求选择对应的网口。

虚拟机Docker对比_NAS虚拟化部署选择_docker与虚拟机的区别

这时侯就可以直接启动虚拟机了,启动以后VirtualBOX会给虚拟机生成一个远程端口,点击端口会手动下载.DRP文件,通过这个文件才能直接移动远程桌面合同访问虚拟机了。

NAS虚拟化部署选择_虚拟机Docker对比_docker与虚拟机的区别

剩下的Win系统安装步骤就不须要我多介绍了,至此一个虚拟化的操作系统也便完成了。

虚拟机Docker对比_docker与虚拟机的区别_NAS虚拟化部署选择

其东易日盛建虚拟机很简单,但对于NAS而言虚拟机能做才是重点。

铁威马由于用的是原生VirtualBOX应用,所以在虚拟机的支持上会比其他NAS要好好多,同时在设置的灵活性上也要更为便捷。在设置中能看见对于系统、显示、存储、声音、网络以及并口和USB设备的设置更改项,这或许在好多其他NAS是不能进行更改的,常常在创建以后就定死了。

但若果要用虚拟机来进行WindowsServer或则Ikuai的布署,那必将须要用到网口配置,亦或则你须要用NAS搭建虚拟机作为沙盒使用,须要进行自己的程序验证测试等工作,这么USB的设置也就十分重要。

VirtualBOX让我最喜欢的点虽然是他的快照功能,熊猫使用虚拟机的通常都是拿来进行项目测试,由于搭建环境、应用安全性的各类缘由,折腾的过程虽然好多时侯系统容易崩掉,VirtualBOX不管是创建还是恢复都十分便捷快捷。

NAS虚拟化部署选择_虚拟机Docker对比_docker与虚拟机的区别

docker与虚拟机的区别_NAS虚拟化部署选择_虚拟机Docker对比

总的来说虚拟机更适宜运行多个不同操作系统,对隔离性和安全性要求较高的任务,不过由于其占用资源比较大,所以假如真的要使用虚拟机建议NAS起码保留8G及以上的显存,以确保系统运行流畅。

操作系统级虚拟化-Docker

和虚拟机应用VirtualBOX一样,铁威马的Docker不仅提供了自身体验不错的DockerManager使用,还在应用商店外置了Portainer,不过建议后续铁威马能把这个应用换成英文镜像docker与虚拟机的区别,默认中文操作上去还是比较麻烦。

NAS虚拟化部署选择_虚拟机Docker对比_docker与虚拟机的区别

Portainer相对更为偏向于团队管理,日常使用似乎更多的还是用DockerManager,功能齐全且界面UI操作也更为直观,加上铁威马拥有完全开放的Docker权限,DockerManager的体验个人认为是十分不错的,单说权限开放这一点好多非专业性的NAS就满足不了。

虚拟机Docker对比_NAS虚拟化部署选择_docker与虚拟机的区别

DockerManager支持Docker-compose容器堆栈,对于一些小型项目的布署效率能提升不少,同时docker-compose的布署方法也利于后期容器的更改和迁移,虽然是容器出问题也能通过docker-compose.yml及时恢复。

docker与虚拟机的区别_NAS虚拟化部署选择_虚拟机Docker对比

docker与虚拟机的区别_虚拟机Docker对比_NAS虚拟化部署选择

DockerManager的堆栈支持本地yml和上传yml文件,也支持直接创建,创建以后可通过验证来检测句型是否错误,不过这儿还是给铁威马提一个意见,目前镜像源不支持加速镜像地址设置,十分不便捷,建议后期可以修改一下。

NAS虚拟化部署选择_docker与虚拟机的区别_虚拟机Docker对比

总结

按照虚拟机和Docker容器的各类特点,熊猫这儿也做了个图表来进行对比。

docker与虚拟机的区别_虚拟机Docker对比_NAS虚拟化部署选择

从二者的特点对比可以得到推论,虚拟机更适宜多个不同操作系统的使用,同时在隔离性和安全性上虚拟机会有更好的保障,比较适用于传统IT环境中的服务器虚拟化项目;而Docker容器则拥有快速开发、测试和布署应用的特点,加上堆栈的功能更适用于分布式应用的布署。

最后还是要说明,这二者并不冲突,虚拟机能提供强隔离性、多操作系统支持和稳定的基础环境,而Docker提供轻量化、高效借助资源和快速布署的能力,通过三者的结合可以实现混和布署、多操作系统支持、混合工作负载等等场景。

NAS虚拟化部署选择_虚拟机Docker对比_docker与虚拟机的区别

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复