用docker重新定义java虚拟化部署(基础篇)

用docker重新定义java虚拟化部署(基础篇)

ID:9075487

大小:220.99 KB

页数:6页

时间:2018-04-16

用docker重新定义java虚拟化部署(基础篇)_第1页
用docker重新定义java虚拟化部署(基础篇)_第2页
用docker重新定义java虚拟化部署(基础篇)_第3页
用docker重新定义java虚拟化部署(基础篇)_第4页
用docker重新定义java虚拟化部署(基础篇)_第5页
资源描述:

《用docker重新定义java虚拟化部署(基础篇)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、用Docker重新定义Java虚拟化部署(基础篇)Docker是一个用于构建、分发、运行分布式应用的开源平台。Docker化的应用可以在开发者的电脑上运行,并能够被部署到生产的云环境中,Docker正以前所未有的方式,在持续集成和持续部署中发挥着巨大作用。希云认为:在未来的工作中,Docker这个平台是每个开发者都应该熟悉的。开源Java项目把Docker带给Java开发者,后面将会解释为什么Docker对Java开发者那么重要,引导大家在Docker中安装并部署Java应用,并让大家看到如何把Docker集成到构建流程中。Docker技术快速指南Docker有它自己的术语,这些术语会在

2、本文中反复用到,请先花一些时间去熟悉它们:·Docker引擎(Dockerengine):在服务器上的一个守护进程,它是你和Docker应用与所依赖的操作系统的桥梁。·Dockerfile:一个文本文件,内容是用于构建Docker镜像的指令。·Docker镜像:构建一个Dockerfile的产物,构建过程中执行Dockerfile中的命令,会生成一个镜像。它首先会基于一个根系统(基础镜像)构建,然后安装应用,接着执行一系列命令来准备启动应用的环境。Docker镜像作为Docker容器的基础,相当于容器的一个静态模块。·Docker容器:一个Docker镜像的运行时实例,Docker镜像类

3、似于模块的概念(从Dockerfile构建,这个Dockerfile包含了根系统,应用以及一系列构建镜像的命令),容器是那个镜像的一个实际能运行的实例。·Docker宿主:一个物理机或者虚拟机,在此系统上运行着Docker引擎,维持着容器所依赖的Dockerhub。·DockerHub:官方的Docker镜像仓库,把DockerHub想象为GitHub仓库,对于Git来说是中央仓库,DockerHub是官方保存及提供Docker镜像的中央仓库。·cSphereHub:希云官方的Docker微镜像仓库,DockerHub中有非常多的镜像,但cSphereHub中存放了精心挑选出来的,并精心

4、制作的镜像。>>>Docker简介在二十多年前,软件应用曾经是非常庞大并且复杂的,会被部署在大型的计算机上。在Java的世界里边,我们开发的企业软件包(EAR)中,包含企业JavaBean(EJB)和web组件(WAR),然后会部署在大型应用服务器上。为了能尽量有效地利用这些大型计算机上的资源,我们会尽最大能力去设计这些应用。在21世纪早期,随着云计算的出现,开发者们开始使用虚拟机以及服务器集群,去扩展应用以满足需求。要以虚拟化的方式部署应用,应用必须被设计得与传统方式有所不同,轻量级,面向对象的应用成为新标准。我们学会了把软件做成各种能互联的服务集合,将各组件尽可能地设计成无状态。可扩

5、展架构的概念和实现都发生了变化,不再是依赖于单台大型计算机的垂直扩展,开发者和架构师开始思考以水平扩展方式实现:如何把单个应用部署到数个轻量级的计算机上。Docker的出现使虚拟化更向前迈进了一步,提供了一个轻量级的层,处于应用和所依赖的硬件中间,Docker把应用当作是宿主系统的一个进程来运行。图一对比了传统虚拟机和Docker。图1.虚拟机与Docker的比较传统的虚拟机会在宿主系统上运行着一个虚拟机监视器,并在虚拟机中运行着一个完整的客户系统(GuestOS),应用依赖的所有包都在客户系统中。相反地,Docker有个Docker引擎,也是一个运行在宿主系统的守护进程。Docker引

6、擎把Docker容器中的系统调用,翻译成宿主系统的原生调用。一个Docker镜像,作为Docker容器的创建模板,只是包含了操作系统的最小层,以及仅仅是应用所需要的依赖库。大家看起来感觉这些差异似乎不大,但实际上却是天壤之别。Docker的优势,很大一部分都是在这点体现出来的!>>>理解进程虚拟化我们仔细分析一下虚拟机中的操作系统,会留意到虚拟机中的资源,例如CPU和内存。但当我们运行一个Docker容器,我们会直接看到宿主机上的资源。我把Docker看成是进程级的虚拟化平台,而不是系统级的虚拟化平台。基本上,应用是作为一个独立的自包含进程运行在宿主机上,Docker通过借助着Linux

7、上几个强大的组件,实现了隔离性,确保每个进程都是操作系统上的独立进程。因为Docker化的应用与宿主机上的进程运行方式类似,所以设计上也和虚拟机中的应用不同。举个例子说,我们通常会在一个虚拟机上运行Tomcat和MySQL数据库,但Docker的实践中,我们会把app服务器与数据库分别部署,各自运行在不同的容器中。这样让Docker更好地管理宿主系统上的独立单元,这意味着要更有效率地使用Docker,我们需要以适当的粒度设计应用,例

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。