58 views

什么是DOCKER?DOCKER容器解释道

By | 2019年1月10日

软件不是简单的。即使看似基本的应用程序也可能存在依赖关系的大量嵌套,需要运行大量的软件包,库和其他软件组件。当您尝试在同一操作系统环境中运行多个应用程序时,您可能会发现其中一些组件不能相处。当您尝试使这些软件堆栈保持最新或更改它们以满足业务需求时,您会带来各种各样的维护问题。

多年来,隔离和组织应用程序及其依赖关系的主要方法是将每个应用程序放在自己的虚拟机中。虚拟机可以在同一物理硬件上运行多个应用程序,同时将软件组件之间的冲突和硬件资源的竞争降至最低。但虚拟机体积庞大 – 通常为千兆字节。它们并没有真正解决诸如可移植性,软件更新或持续集成和持续交付之类的问题。

输入Docker容器。容器可以将应用程序隔离到共享操作系统内核的小型轻量级执行环境中。通常以兆字节为单位测量,容器使用的资源远远少于虚拟机,并且几乎立即启动。它们可以更密集在相同的硬件和纺上下集体少得多的努力和开销。

因此,容器提供了一种高效且高度精细的机制,用于将软件组件组合到现代企业中所需的各种应用程序和服务堆栈中,并保持这些软件组件的更新和维护。

Docker容器基础知识
Docker容器是几十年来一直在Unix操作系统(如BSD和Solaris)中的一个想法的最现代化的 – 这个想法是一个给定的进程可以在某种程度上与其他操作环境隔离。

虚拟机通过将整个操作系统实例专用于需要分区的每个应用程序来提供隔离。这种方法提供几乎完全隔离,但代价是显着的开销。每个客户操作实例都会占用内存和处理能力,可以更好地用于应用程序本身。

容器采取不同的方法。每个应用程序及其依赖项都使用操作系统资源的分区段。容器运行时(Docker,最常见)通过绘制主机操作系统提供的低级容器服务来设置和拆除容器。

例如,要理解Linux容器,我们必须从cgroups和名称空间开始,Linux内核功能可以在容器和主机上运行的其他进程之间创建隔离墙。最初由IBM开发的Linux命名空间包装了一组系统资源,并将它们呈现给一个进程,使它看起来像是专门用于该进程。

最初由Google开发的Linux cgroup管理一组进程的系统资源(例如CPU和内存)的隔离和使用。例如,如果您的应用程序占用了大量CPU周期和内存(例如科学计算应用程序),则可以将应用程序放在cgroup中以限制其CPU和内存使用量。

命名空间处理单个进程的资源隔离,而cgroups管理一组进程的资源。croup和命名空间一起用于创建容器技术,称为Linux容器或LXC。

发表评论

电子邮件地址不会被公开。 必填项已用*标注