iSula再学习3(基于21.09)
作者:互联网
容器相关的理论知识——我的理解
1 容器和虚拟化的区别
讲容器的时候,虚拟化是无法绕开的。
二者主要区别的参照物是操作系统。
操作系统分为用户态和内核态。
内核是一个操作系统的核心,它可以直接对硬件进行操作,因此我们把内核功能运行的逻辑空间成为内核态。其他给用户使用的应用运行在用户态。
我们在市面上可以看到很多不同的Linux发行版,发行版就是内核+应用。不同的发行版本之间的区别就是应用不同,也就是运行在用户态的应用彼此之间是不同的,而内核全部都是来自于linux内核,只是内核版本不同而已。
容器和虚拟化之间的区别就是:所有的容器和宿主机共用同一个内核,容器只使用自己所需要的用户态,虚拟机则需要运行对应版本操作系统所有的内核和用户态。因此我们经常说容器是一个轻量级的虚拟化,它轻量就表现在不需要单独的内核,已经没必要的用户态。
看图:
容器、操作系统和应用的关系
虚拟机、操作系统和应用的关系
2 容器的工作原理
用户要使用计算机运行应用,无论是哪种形态,都需要三种资源:计算、存储和网络,容器也一样。
容器的计算资源(说白了就是CPU和内存)需要使用CRI去调用,CRI可以理解为一个插件,容器引擎通过CRI去调用合适的CPU资源和内存资源。
网络资源通过CNI去调用,存储资源则通过CSI去条用。
3 容器是如何判断其运行的服务终端了
我们讲容器的生命周期和其运行的服务是同步的,服务停止了,容器也就停止了。那容器是如何判断服务停止的呢?
容器在运行服务时,是将该服务运行在前台的,相当于给这个服务配了一个单独的终端,只要终端停了,说明服务也就停止了,那么容器也就终止了。
标签:容器,基于,操作系统,虚拟化,用户,内核,21.09,运行,iSula 来源: https://www.cnblogs.com/yftyxa/p/15859558.html