初识容器技术
Posted 玛卡巴卡巴巴亚卡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识容器技术相关的知识,希望对你有一定的参考价值。
一、什么是容器
当一个应用程序组件变小变多,就不再适合使用虚拟机了,容器就是更好的解决方案。容器允许在容易太机器上运行多个服务,不仅给不同服务提供环境,并且让他们相互隔离。
容器中的进程相当于运行在宿主机操作系统上,容器中的进程与其他进程隔离。
二、虚拟机与容器
每个虚拟机需要运行的全套系统进程,会造成额外资源消耗,而容器更加轻量,因为他只是运行在宿主机上的一个被隔离的单独进程,仅消耗应用容器消耗的资源。
当主机上运行了三个虚拟机时,会有三个完全分离的操作系统,它们运行并共享一台裸机。宿主机操作系统与管理程序将物理硬件资源分成小份,以供每个虚拟机的操作系统使用。虚拟机里的应用汇执行虚拟机操作系统的系统调用,虚拟机内核可通过管理程序在宿主机执行x86命令。
ps:管理程序有使用宿主机os和不使用宿主机os之分。
容器则完全执行运行在宿主机上的同一个内核的系统调用,这个内核是唯一一个在宿主机操作系统上执行x86指令的内核。
相比于容器,虚拟机提供完全隔离的环境,并且运行在自己的内核上,而容器则调用一个内核。
三、容器隔离机制
多个进程运行在一套操作系统上,需要有技术来实现隔离。
1、linux命名空间:每个进程只能看到自己的系统视图
linux最初只有一个命名空间,所有系统资源属于这个命名空间,但可以创建额外的命名空间,并且在它们之间组织资源。一个进程可以在其中一个命名空间运行,进程只能看见统一命名空间的资源。
进程都有自己的命名空间,因此只能看见自己的一组网络接口
2、linux控制组:限制进程使用的资源量。
cgroup实现,这是一个linux内核功能,限制进程使用,使其不超过分配的量。
以上是关于初识容器技术的主要内容,如果未能解决你的问题,请参考以下文章