一路走过的集装箱

在本文中,我将尝试介绍裸机系统虚拟系统容器系统的基础知识 这样做的目的是了解这些系统的现状以及它们之间的差异,重点是它们在各自环境中如何执行程序。

裸机系统

让我们将Bare Metal Systems视为我们每天使用的台式机和笔记本电脑(甚至是服务器机房和数据中心中的服务器),它具有以下组件:

  • 硬件(外部物理层)
  • 操作系统平台(在硬件内部运行)
  • 在OS上运行的程序(作为进程)

程序以可执行文件(操作系统可理解的格式)的形式存储在硬盘驱动器上,并通过一个或多个进程加载到内存中。 程序与内核交互,内核构成了OS体系结构和硬件的核心部分。 OS协调硬件(即CPU,I / O设备,内存等)与程序之间的通信。

一路走过的集装箱

有关什么程序或可执行文件,程序如何执行以及操作系统在哪里起作用的更详细说明, 请参见此*页面[2]

虚拟系统

在另一方面虚拟系统,与像, 虚拟盒VMWare或虚拟系统控制器的帮助下管理程序[1]运行裸机系统上的操作系统。 这些系统将裸机硬件模拟为软件抽象,并在其中运行真实的OS平台。 这样的系统可以由以下几层组成,也称为虚拟机(VM):

  • 硬件(虚拟机)的软件抽象
  • 在软件抽象中运行的OS平台(来宾OS)
  • 来宾操作系统中运行的一个或多个程序(进程)

这就像在另一台计算机中运行一台计算机(作为软件而摘要)一样。 裸金属系统的其余基础知识也适用于此抽象层。 在虚拟系统内部创建进程时,运行虚拟系统的主机操作系统也可能会生成一个或多个进程。

一路走过的集装箱

集装箱系统

现在来看容器系统,我们可以说以下内容:

  • 它们运行在Bare Metal Systems或Virtual Systems中运行的OS平台之上
  • 允许隔离进程和彼此共享内核的容器(由于cgroups [3]和命名空间之类的OS内核功能,在某些操作系统(如Linux)中可能与其他进程和资源隔离)

容器创建类似于OS的环境,在其中可以执行一个或多个程序。 这些执行中的每一个都可能导致主机OS上一个或多个进程。 容器系统由以下几层组成:

  • 硬件(可通过内核功能访问)
  • 操作系统平台(共享内核)
  • 在容器内运行的一个或多个程序(作为进程)

一路走过的集装箱

摘要

看看这些围栏或彼此之间的圆角矩形,我们已经可以看到它一直都是容器。

一路走过的集装箱

裸机系统虚拟系统容器系统之间的区别越来越多。 虚拟系统将操作系统封装在一个厚硬件虚拟化内部,而容器系统则做了类似的事情,但虚拟化层却薄得多。

当我们单独查看它们时,这些系统之间有很多利弊,例如,可移植性,性能,资源消耗,重新创建此类系统的时间,维护等。

感激之词,保持联系

感谢您抽出宝贵时间,随时将您的疑问和评论发送给TheNeomatrix369 非常感谢我的同事,我们的DevOps工匠Robert FirekCodurance的工匠David Hatanian他们为我的职位提供了宝贵的反馈,并为我指明了正确的方向。

资源资源

翻译自: https://www.javacodegeeks.com/2016/03/containers-all-the-way-through.html