虚拟机技术

虚拟机就是带环境安装的一种解决方案,可以在一种操作系统里面运行另外一种操作系统,比如:windows系统里面运行Linux系统。应用程序对此毫无感知,因为虚拟化看上去跟真实系统一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要就删除,对其他部分毫无影响。这类虚拟机完美的运行了另一套系统,能够使应用程序、操作系统、硬件三者之间的逻辑不变。
20230517135501.png
虚拟机缺点

  • 资源占用多
  • 冗余步骤多
  • 启动慢

容器虚拟化技术

由于前面讲述了虚拟机存在这些缺点,Linux发展出了另一种虚拟化技术:Linux容器(Linux containers)缩写为LXC
Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离。有容器就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署任何环境中的软件都能始终如一运行。
20230517140301.png
Docker和传统虚拟化方式不同之处

  • 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程
  • 而容器内的应用进程直接运行于宿主机的内核,容器内没有自己的内核,而且也没有硬件虚拟,因此容器要比传统虚拟化要更为轻便。
  • 每个容器之间相互隔离,每个容器有自己的文件系统,容器之间进程不会影响,能区分计算资源。

开发/运维(DevOps)

1、更快速的应用和部署
传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需要根据配置文档进行繁杂额配置才能正常运行。Docker化之后只需要交付少量的容器镜像文件,在正式生产环境加载镜像并运行即可。应用安装配置在镜像里内置好,大大节省部署配置和测试验证时间。
2、更便捷的升级和扩缩容
随着微服务架构和Docker的发展,大量的应用会通过微服务方式架构,应用的开发构建将变成搭乐高积木一样,每个Docker容器将变成一块“积木”,应用的升级将变得非常容易。当现有的容器不足以支撑业务处理时,可通过镜像运行新的容器进行快速扩容,使应用系统的扩展从原先的天级变为分钟级甚至秒级。
3、更简单的系统运维
应用容器化运行后,生产环境运行的应用可与开发、测试环境的应用高度一致,容器会将应用程序相关的环境和状态完全封装起来,不会因为底层基础架构和操作系统的不一致性给应用带来的影响,产生新的BUG。当出现程序异常时,也可以用过测试环境的相同容器进行快速定位和修复。
4、更高效的计算资源利用
Docker是内核级虚拟化,其不像传统的虚拟化技术一样需要额外的Hypervisor[管理程序]支持,所以在一台虚拟机上就可以运行很多个容器实例,可大大提升物理服务器的CPU和内存的利用率。

学习途径
Docker官网:http://www.docker.com
Docker 中 文 网 站 :https://www.docker-cn.com
Docker Hub官网:https://hub.docker.com (仓库)

最后修改:2023 年 05 月 17 日
如果觉得我的文章对你有用,请随意赞赏