对容器技术的理解

Posted _雪辉_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对容器技术的理解相关的知识,希望对你有一定的参考价值。

文章目录


  容器的本质是一个特殊的进程,核心功能就是通过约束和修改进程的动态表现,从而为其创造出一个’边界’。 就容器本质而言,它并没有在宿主机上启动一个容器进程,它启动的还是用户原来要启动的应用程序,只不过这个应用程序上加了视图隔离和资源限制,真正对隔离环境负责的是宿主机操作系统本身。虚拟机也能实现视图隔离和资源限制,但与容器相比,虚拟机会带来更多的性能损耗:

  • 虚拟机本身的进程需要占用一部分资源
  • 与底层硬件交互的时候(网络、磁盘I/O)都需要经过虚拟化软件拦截,会有损耗
  • 相比容器有更好的隔离性和安全性

容器使用技术:

  • 视图隔离:Namespace ,隔离得不彻底
  • 资源限制:cgropus,限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等
  • 切换进程的根目录(Change Root):容器镜像生效,以实现环境一致性。所谓容器镜像,本质就是容器的根文件系统(rootfs)
 - Linux Cgroups 的全称是 Linux Control Group。它最主要的作用,就是限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等等。
 - Namespace 技术实际上修改了应用进程看待整个计算机“视图”,即它的“视线”被操作系统做了限制,只能“看到”某些指定的内容。
 - rootfs 只是一个操作系统所包含的文件、配置和目录,并不包括操作系统内核。
 - 使用Volume来实现将宿主机的文件挂载到容器中

以上是关于对容器技术的理解的主要内容,如果未能解决你的问题,请参考以下文章

对容器技术的理解

Spring学习第0节 -- 核心技术Ioc容器IOC理解

理解Docker容器的进程管理

深入理解虚拟机容器和Hyper技术

ViewGroup 容器在哪里初始化?

金蝶handler中 collection 代码片段理解