docker(一)容器发展之路

一、容器的发展之路

1、旧时代

业务都是基于应用运转的,大部分的应用都是运行在服务器之上的。在旧时代每个服务器上只能运行单一的应用,Windows和Linux操作系统都没有响应的技术手段来保证在一台服务器上稳定而安全地同事运行多个应用程序。

在那个时代,经常会出现这样的一幕:每次业务部门想要增加一个新的应用的时候,IT部门都需要去采购一台新的服务器。大部分情况下,没有人能确切的指知道新应用所需要的服务器的指标是怎样的,那么IT部门的同事进行采购的时候更多的是根据个人的经验去猜测购买服务的型号和规格。

因此,IT部门的同事在采购的时候不得不买那些性能指标大幅优于业务需要的服务器。毕竟不论是IT部门还是业务部门都不想看到应为服务器性能导致的业务故障的出现。这种环境下就导致了大部分时间服务器长期运行在低负载的情况下。

以上种种原因就会对公司的资产和资源产生一种极大的浪费!

2、新世界

唯有发展和创新是解决问题的钥匙。

为了解决旧时代应用部署的种种问题,VM(虚拟机)问世了。VM是一款通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统虚拟机技术。几乎在一夜之间,新世界的大门就敞开了,至此人们拥有了一种允许多个应用能够稳定、安全的同时运行在一个服务器中的技术。

虚拟机是具有跨时代意义的技术!每当业务部门需要部署一个新应用的时候在也不是第一时间重新购置服务器了,而是尝试在满足规划性能的具有空闲资源的服务器上部署新应用。

结果显而易见,这种技术能给够让现有的资产发挥更大的价值,从而为公司节省大量的资金。

3、伟大航路

3.1、虚拟机的不足

强大如虚拟机技术,也有其不足之处。比如虚拟机启动时间通常比较长,不同虚拟机管理器之间或者云平台之间进行应用的迁移的成本难以想象,咱们服务上云就是一个活生生的例子。但是其中最大的缺点还是资源的占用问题:虚拟机需要依赖其专用的操作系统,OS都需要额外的CPU、内存、存储等等,这些资源本可以用来运用更多的业务服务。

3.2、容器的问世

各大厂商采用容器技术解决虚拟机模型的缺点。两者的模型基本类似,最大的区别就是容器不会独享操作系统,所有的容器共享宿主机的操作系统。这样就节省了大量的系统资源,以及OS的补丁和许可认证上的开销。当然运维成本也是成倍的节省。

同事前面提到的应用的迁移、服务的启动等问题也有了质的改善。

3.3、容器技术的基础

现代容器技术是起源于Linux,包括目前市面上最火的容器技术Docker就是基于Linux技术。对于容器影响比较大的技术包括内核命名空间(Kernel Namespace),控制组(Control Group),联合文件系统(Union File System)。当然以上的技术都是比较复杂的,知道Docker技术的出现让容器技术被大众所接受。

3.4、容器现状

前面也提到容器技术大多是基于Linux的,其他的操作系统上就没有容器吗?还真是有操作系统没有容器,那就是MAC。有同学就疑惑了,为什么我在MAC系统上也可以使用Docker?这是通过在Mac上启动了一个轻量级的Linux VM,然后在其中无缝的运行Linux容器来实现的。但是Windows是有容器的哦,实现容器的核心是Windows内核技术被称为是Windows容器。这里又有一个疑问:容器都是共享宿主机的内核的那么是不是Linux容器不能随便的迁移到Windows宿主机上?答案是相对肯定的,在Docker公司发布为Windows10设计的产品之前是没有办法做到这一点的,但是在以后的的容器产品中两种容器模式之间的切换肯定是稀松平常。

二、走进Docker

1、Docker为什么会出现

在了解Docker为什么出现的时候先看下咱们在开发工作中的一些常见问题。首先是咱们的开发环境,至少包含本地、预发、线上三套开发环境,每一套开发环境都需要进行系统、应用的配置。在咱们的平时的工作中有个都被玩腻了梗:这个服务在我本地是可以启动的呀,怎么到了测试环境就不行了呢!可见不同环境配置是十分的麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop…) !费事费力。其次有时候开发环境Windows,最后发布到Linux上!以上遇到的种种问题,Docker都提出了完美的解决方案!

猜你喜欢

转载自blog.csdn.net/lly576403061/article/details/129505037