https://blog.csdn.net/qq_42223331/article/details/103878688?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduend~default-1-103878688.nonecase&utm_term=%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E4%B8%8E%E8%99%9A%E6%8B%9F%E5%8C%96%E6%8A%80%E6%9C%AF%E7%9A%84%E4%BC%98%E7%BC%BA%E7%82%B9&spm=1000.2123.3001.4430
虚拟化优点:
1.资源池化
2.易拓展性(扩容)

容器化主要的优点:
1.解决可移植性问题
容器是通过一种虚拟化技术来隔离运行在主机上不同进程,从而达到进程之间、进程和宿主操作系统相互隔离、互不影响的技术。这种相互孤立进程就叫容器,它有自己的一套文件系统资源和从属进程。
2.更快速的启动时间
3.对资源的利用率更高(相同配置的主机能运行更多的应用)
4.更容易拓展和维护(可以再底层基础镜像上进一步的扩展镜像)
5.持续交付、部署(一次创建,多地方运行)。对于运维人员来说,可以直接在生产环境上快速部署现成镜像。
图片说明
https://blog.csdn.net/u013190088/article/details/81228424

docker的劣势
前面的内容主要论述docker相对于虚拟机的优势,但docker也不是完美的系统。相对于虚拟机,docker还存在着以下几个缺点:
1.资源隔离方面不如虚拟机,docker是利用cgroup实现资源限制的,只能限制资源消耗的最大值,而不能隔绝其他程序占用自己的资源。
2.安全性问题。docker目前并不能分辨具体执行指令的用户,只要一个用户拥有执行docker的权限,那么他就可以对docker的容器进行所有操作,不管该容器是否是由该用户创建。比如A和B都拥有执行docker的权限,由于docker的server端并不会具体判断docker cline是由哪个用户发起的,A可以删除B创建的容器,存在一定的安全风险。
3.docker目前还在版本的快速更新中,细节功能调整比较大。一些核心模块依赖于高版本内核,存在版本兼容问题