快速学习Docker-传统虚拟化和容器虚拟化的区别

传统的虚拟化技术

虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

快速学习Docker-传统虚拟化和容器虚拟化的区别_第1张图片
快速学习Docker-传统虚拟化和容器虚拟化的区别_第2张图片
随着硬件厂商的不断发展,很多在虚拟机里面的指令不需要通过虚拟的硬件层走到真正的硬件层.硬件厂商是支持直接在虚拟机里面实用指令操作硬件,这个技术我们就称为是硬件辅助的虚拟化.这种硬件的辅助虚拟化比起软件虚拟的硬件层来说,他不需要模拟所有的硬件.有些指令是直接运行在虚拟机上来操作硬件的.性能和效率比传统的虚拟化高更高些.

系统级别的虚拟化
  • 特点:
    • 不需要模拟硬件层.
    • 共享同一个宿主机的内核
      快速学习Docker-传统虚拟化和容器虚拟化的区别_第3张图片
传统虚拟化和容器虚拟化的区别

快速学习Docker-传统虚拟化和容器虚拟化的区别_第4张图片

Container的核心技术
  • 1.CGroup限制容器的资源使用
  • 2.Namespace机制,实现容器间的隔离
  • 3.chroot,文件系统的隔离.
CGroup:

Linux内核提供的限制,记录和隔离进程组所使用的资源.由Google的工程师提出,后台被整合到内核中.通过不同的子系统来实现对不同资源使用的控制和记录.

/sys/fs/cgroup
Namespace:
  • pid:容器有自己独立的进程表和1号线程.
  • net:容器有自己独立的network info
  • ipc:在ipc通信的时候,需要加入额外信息来标示进程
  • mnt:每个容器都有自己唯一的目录挂载
  • utc:每个容器都有独立的hostname和domain
chroot:

在宿主机中的某个目录就是容器中的根目录.

你可能感兴趣的:(快速学习)