Docker

Docker简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
1.1虚拟化技术
虚拟化一般分为硬件级虚拟化和操作系统级虚拟化。
1.2基于服务的云计算模式
1.基础设施即服务(IAAS),通常指的是在云端为用户提供基础设施,
例:虚拟机、服务器、存储、负载均衡、网络…亚马逊的AWS就是这个领域的佼佼者,国内是阿里云为首。
2.平台即服务(PAAS),通常指的是在云端为用户提供可执行环境、数据库、网站服务器、开发工具…
3.软件即服务(SAAS),SaaS平台供应商将 应用软件 统一部署在自己的服务器上,客户可以根据工作实际 需求 ,通过互联网向厂商 定购 所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得Saas平台供应商提供的服务。SaaS 应用软件有 免费 、付费和 增值 三种模式。. 付费通常为“全包”费用,囊括了通常的应用软件许可证费、软件维护费以及技术支持费,将其统一为每个用户的月度租用费。
1.3什么是Docker
Docker 是一个开源项目,诞生于2013年初,最初是 dotCloud 公司内部的一个业余项目,它基于 Google 公司推出的 Go 语言实现。项目后来加入了 Linux基金会,道从了 Apache 2.0 协议,项目代码在 GItHUb,济行维护。
Docker 白开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker inc。
Redhat 已经在其RHEL6.5中集中支持 Docker;Google 也在其 Paas 产品中,泛应用。Docker项目的目标是实现轻量级的操作系统虚拟化解决方案。Docker 的基础是Lnux容<LXC)等技术,在 Lxc 的基础上 Docker 进行了进一步的封装, 让用户不需要去关心容器的管理,使得操作更为简便。用户操作-Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。
Docker 是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自是的容器。开发者在本地编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare meta)、Openstack 集群和其他的基础应用平台。
简单的理解,Docker类似于集装箱,各式各样的货物,经过集装箱的标准化进行托管,而集装箱和集装箱之间没有影响。也就是说 Docker平台就是一个软件集装箱化平台,这就意味着我们自己可以构建应用程序,将其依赖关系一起打包到一个容器中,然后这容器就很容易运送到其他的机器上进行运行,而且非常易于装载、复制、移除,非常适合软件弹性架构。
在这里插入图片描述
因此,就像船只、火车或卡车运输集装箱而不论其内部的货物一样,软件容器充当软件部署的标准单元,其中可以包含不同的代码和依赖项。按照这种方式容器化软件,开发人员和IT专业人员只需进行极少修改或不修改,即可将其部署到不同的环境。
总而言之,Docker是一个开放平台,使开发人员和管理员可以在称为容器的松散隔离的环境中构建镜像、交付和运行分布式应用程序。以便在开发、QA和生产环境之间进行高效的应用程序生命周期管理。
下面的图片比较了 Docker和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。
在这里插入图片描述
Docker的基本结构:
在这里插入图片描述
在这里插入图片描述
Docker 在如下几个方面具有较大的优势。
1更快速的交付和部署
对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。
开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。Docker可以快速创建容器,快速迭代应用程序,并让整个过程全程
可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。Docker容器很轻很快!
容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。
2更高效的虚拟化
Docker 容器的运行不需要额外的 hypervisor支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。
3 更轻松的迁移和扩展
Docker容器几平可以在任意的平台上运行,包括物理机虚拟机,公有云,私有云,个人电脑,服务器等,这种兼容性可以让用户把,个应用程序从一个平台直接迁移到另外一个。
4更简单的管理
使用Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并目高效的管理。
1.4Docker 应用场景
简化配置;

虚拟机的最大好外是能在你的硬件设施上运行各种配苦不一样的平台(软件系统)Docker在降低频外开销的情况下提供了同样的功
能。它能让你将运行环境和配置放在代码中然后部署,同一个Docker的配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合度。
代码流水线(Code Pipeline)管理;
前一个场景对于管理代码的流水线起到了很大的帮助。代码从开发者的机器到最终在生产环境上的部署,需要经过很多的中间环境。而每一个中间环境都有自己微小的差别,Docker给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少。
在这里插入图片描述
提高开发效率
不同的开发环境中,我们都想把两件事做好。一是我们想让开发环境尽量贴近生产环境,二是我们想快速搭建开发环境。
使用Docker非常简单的就能够实现这两点,而且哪怕是开发环境的机器配置一般的情况下搭建多个生成服务应用。一台一般配置服务器或开发机也能轻松的跑起多个Docker应用,而无需额外增加机器配置,因为Docker有个非常NB的特性,拥有虚拟化的特性,而几乎没有额外的开销。
隔离应用
很多情况下,我们需要在一台服务器上运行多个不同的应用,比如上面提到的提高开发效率的场景等。
我们经常需要考虑三点,一是因为要降低成本而进行服务器整合,二是将一个整体式的应用拆分成松耦合的单个服务(比如微服务架
构),三是还需要考虑应用之间的兼容性。而对于Docker来说,支持起来就非常简单了。同一台机器,我可以同时运行N个Docker web应用,托管到不同的Web服务器(Kestrel、Ngnix、Tomcat),而无需担心他们会搞起3Q大战,也无需担心我的开发机器会跑不起来。
整合服务器
正如通过虚拟机来整合多个应用,Docker隔离应用的能力使得Docker可以整合多个服务器以降低成本。由于没有多个操作系统的内存占用,以及能在多个实例之间共享没有使用的内存,Docker可以比虚拟机提供更好的服务器整合解决方案。
这就意味着资源得到更有效的利用–可以做更多衣服,而且还没有边角料,成本还更低。
调试能力
Docker提供了很多的工具,这些工具不一定只是针对容器,但是却适用于容器。它们提供了很多的功能,包括可以为容器设置检查点设置版本和查看两个容器之间的差别,这些特性可以帮助调试Bug。
多租户环境
在多相户的应用中,它可以避免关键应用的审写。比如T(物联网)的应用中,开发一个快速易用的多相户环境,这种多相户的其本
代码非常复杂,很难处理,重新规划这样一个应用不但消耗时间,也浪费金钱。
使用Docker,可以为每一个租户的应用层的多个实例创建隔离的环境,这不仅简单而且成本低廉,当然这一切得益于Docker环境的启动速度和其高效的diff命令。
就如同我们现在写了一个不支持多租户的业务程序,而实际的业务中经常会出现需要支持多租户或者有新客户需要使用的场景,这是我们通常的简单做法是一-部署一套新的代码。当站点达到一定量的适合,要么重写程序,要么维护人员Game over。
快速部署
在虚拟机之前引入新的硬件咨源生消用天的时间,席秘化技术(Virtualization)将这个时间缩销到了分钟级别,而Docker通过大
进程仅仅创建一个容器而无需启动一个操作系统,再次将这个过程缩短到了秒级。
你可以在服务器中或云端创建销毁资源而无需担心重新启动带来的开销。通常情况下,服务器的资源利用率只有30%,而通过使用 Docker并进行有效的资源分配可以提高资源的利用率。
1.5 Docker改变了什么?
综上所述,Docker到底改变了什么?笔者是这么理解的:
Docker改变了云服务,使云服务的共融共通的理想逐步成为了可能。并目Docker已经是云策略的一部分,许多开发者正在计划使用
Docker 将业务迁移到云端。另外,为了避免被云服务供应商绑定,Docker成为很多开发者的首选。
·Docker改变了产品交付,为产品的整个生命周期提供了一整套的解决方案和流程。
·Docker改变了开发方式,提供了简化的环境配置,封装的运行环境以及统一的环境。并目提供了快速部罢的方式
·Docker改变了测试,多版本测试变得极为方便,快速构建测试环境也变得更加简单并且无需开发人员干预或者搭建。
·Docker改变了运维,环境的一致性让运维变得更加简单,同时热更新的支持让运维不再需要半夜加班部署更新,更新可以随时进行。
当出现重大问题时,还能快速回滚到指定版本。
Docker改变了架构,自动化扩容支持让架构变得更加简单,分布式系统也,更加易干搭建和支持。同时遗留的单体应用也很易干转变头
现代应用。
总之,在其种程度上,Docker改变了产品开发中的一些游戏规则。虽然Docker是一项技术,但是它也带来了新的思维,新的流程和工作方法,Docker在推动行业的发展,Docker已经在改变世界,并且在逐步的变为事实……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值