容器技术的由来

2020-04-19  本文已影响0人  一凡的学习笔记

Docker 简介

容器技术的由来

在了解到Docker之前,先聊聊虚拟化技术的历史。在最早的时候,我们想要在线上部署一个应用。我们需要先购买服务器,然后安装操作系统及各种依赖环境,最后进行应用的部署。

这种方式有几个问题:

  1. 部署应用上线应用过程时间非常长
  2. 购买服务器的花费不菲
  3. 物理服务器的资源容易浪费
  4. 迁移和扩展比较困难

因为有上面的问题,后来出现的虚拟化技术。 虚拟化技术就是在操作系统上多加了一个虚拟化层(Hypervisor),可以将物理机的CPU、内存、硬盘等资源进行虚拟化,再通过虚拟化出来的空间上安装操作系统,这就是我们通常说的虚拟机。比如,我们可以将一台32核CPU、64G内存、500G磁盘的物理机进行虚拟化,可以创建8台4核CPU、8G内存的虚拟机。这些机器提供给不同的应用去部署,如此极大提供了资源利用率。常见的虚拟化技术如VMWare,KVM,VirtualBox等。

虚拟化技术的优点:

虚拟化技术发展至今已经非常强大了,那为什么还需要容器化技术呢?

到如今的虚拟机解决了基础设计计算、网络、存储这几个方面的弹性,可以非常方便的扩展出应用需要的资源。但是仍存在两个问题:

在云计算的时代,通常通过自动化脚本的方式去解决上面的问题,但是环境差异,导致脚本维护要投入额外的人力。亦或有的团队使用虚拟化镜像,但是镜像大且启动慢,没法满足时效性的要求。

于是,我们考虑是否存在一种更加轻量化的虚拟化技术,更容易迁移和扩展应用层业务。

集装箱 ——全球物流系统中一个非常重要的发明

在集装箱出现之前,货物是从工厂生产后装箱,然后一箱箱搬到卡车上,然后一箱箱卸下来,一箱箱送上火车,运送到码头附近的火车站,再一箱箱卸下来,拉上货轮,....

这个在集装箱出现之后有了变化,只需要在运输之前一次性封装好到集装箱里面,之后的集装箱直接放到卡车、火车、货轮上,而且集装箱是统一标准的,自然容易机械化,因此集装箱的革命,节省了大量的资源、物流成本大大降低。

正式借鉴了集装箱的解决方案,就有人提出了类似集装箱的方式封装应用以及它的运行环境,将应用和环境打包成一个轻量化、可移植、自包含的容器。

到现在,容器技术有非常多种,docker只是其中一种,但docker的流行度较高。而实现这种类似集装箱的封装技术,实际依赖两种技术,一种是Namespace,实现了在不同命名空间下的应用可以独立的网络、用户空间、进程号等;另一种是CGroup,实现对容器内cpu、内存等资源的隔离,避免单个容器出错,影响所有系统资源。

容器化技术的优势:

局限性:

上一篇 下一篇

猜你喜欢

热点阅读