如何使用Docker 使用mac进行java开发 开发

Docker学习笔记之,搭建一个JAVA Tomcat运行环境_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Docker学习笔记之,搭建一个JAVA Tomcat运行环境
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢Mesos + Docker如何构建你自己的框架 -解道Jdon
& & & &&& & &
  Apache Mesos是一个集群管理器,能够简化在一堆共享服务器池中运行任务的复杂性,Docker是一个轻量容器用来部署打包的服务,类似一个虚拟机,但是消耗资源很小。
  Mesos从0.20版本支持Docker,Mesos + Docker结合能够提供一个非常强大的在集群环境中部署应用和服务的平台。
  这篇教程将解释如何使用Mesos 02.0.1和Docker 1.2.0用Java编写一个简单Mesos框架,用于启动一些容器。
一个典型的Mesos部署是有一个或几个运行mesos-master的服务器以及运行mesos-slave的集群服务器组成,从服务器注册到主服务器,并提供资源和容量用于运行任务,主服务器与被部署的框架交互,将那些资源提供其运行,或接受指令运行任务,或委托这些指令给从服务器。
   多个框架能够并行被部署和在集群中分享资源,举例,Apache Spark和Cassandra 两个都有Mesos框架可用,允许它们两个部署在同一样的集群中。
   一个框架由一个调度器和可选一到多个执行器,调度器scheduler能够连接到mesos-master ,然后接受或拒绝从服务器提供的资源,也提供指令关于什么任务在那些从服务器上运行。
   Mesos对于运行的shell脚本有有缺省的执行器,自从0.20.0版本以后,为了加载docker 容器,它也可以用Java或其他语言编写执行器,在这种情况下,执行器binary (如果是Java则是jar 文件)必须在中央资源如HDFS可用,这样从服务器才能下载它们,当然,我们可以将执行器直接打包在一个Docker Image中,使得部署进程更简单。
   这个教程介绍如何开发一个框架,其中有调度器,能够在一个或多个从服务器上启动Docker容器,没有必要再开发执行器,缺省执行器将被使用。
   源码适用在github:
  更详细源码说明见
| 网站地图 | 设为首页比特客户端
您的位置:
详解大数据
详解大数据
详解大数据
详解大数据
Java开发人员需要注意的五大Docker误区
关键字:Docker Java
  Docker现在很火,容器技术看上不无所不能,但这实际上是一种误解,不要被炒作出来的泡沫迷住双眼,本文抛去炒作,理性地从Java程序员的角度,列举出Docker目前的五大误区,帮助你更好地理解Docker的优势和问题。
  抛去那些媒体和厂商们的炒作,我们如何才能更好更理性的使用Docker?
  Docker最近备受关注,原因显而易见。如何成功交付代码一直困扰着大家。传统的容器技术在众多需求和模板中乱成一团。而Docker可以简单且重复的创建容器。相比其它容器,使用Docker可以更快、更自然的交付代码。Duang,Docker火了!随之而来也有一些误解和误区。不要太相信别人说Docker好用或者不好用。自己理性地全面思考一下Docker,会帮助你真正理解是否真的需要它。
  本文列举了从Java角度的五大Docker误读。不过首先介绍些背景知识。为了更好地理解Docker,我们咨询了Fewbytes的Avishai Ish-Shalom,他有丰富的Docker经验,也是DevOps Days会议的。我们和他一起列举出了这些误解。
  主要误区
  1. Docker是轻量级虚拟机
  这是大家初学Docker时最主要的误解。这种误解倒也情有可原,Docker的确看上去有点像虚拟机。Docker网站上甚至有人比较了Docker和虚拟机的区别。但是,Docker实际上不是轻量级虚拟机,而是改进了的容器(LXC)。Docker和虚拟机是完全不一样的,如果你把Docker容器当成轻量级虚拟机来用,会遇到很多问题。
  在使用Docker之前,必须了解Docker容器和虚拟机有很多本质的区别。
  资源隔离:Docker达不到虚拟机所能提供的资源隔离水平。虚拟机的资源是高度隔离的,而Docker从设计之初就需要共享一些资源,这些资源是Docker无法隔离和保护的,比如页缓存和entropy池。(注:entropy池很有趣,entropy池收集并且操作生成的随机比特。机器在需要随机化时(比如密码相关)使用这个池。)如果Docker容器占用了这些共享资源,那么其他进程在这些资源被释放前只能等待。
  开销:大多数人都知道虚拟机的CPU和RAM能提供类似物理机的性能,但是有很多额外的IO开销。因为放弃了虚拟机的guest,Docker的package更小,比起虚拟机需要更少的开销。但这并不意味着Docker没有任何开销问题。Docker容器依然需要注意IO开销的问题,只不过没有虚拟机严重而已。
  内核使用:Docker容器和虚拟机在内核使用上完全不同。每个虚拟机使用一个内核。Docker容器则是在所有容器间共享内核。共享内核带来一些效率的提升,但是以高可用和冗余为代价。如果虚拟机发生了内核崩溃,只有这个内核上的虚拟机会受影响。而Docker容器如果内核崩溃了,所有的容器都会受影响。
  2. Docker使得应用可扩展
  因为Docker可以在很短的时间内在很多上部署代码,自然有人会觉得Docker使得应用自身变得可扩展。不幸的是,这是错误的。代码构成应用,而Docker并不会重写代码。应用的可扩展性依然取决于程序员。使用Docker并不会自动得让你的代码易于扩展,只是让这些代码更容易跨服务器部署而已。
  3. Docker在生产环境广为使用
  因为Docker势头正劲,很多人便认为Docker已经在生产环境广为使用。事实上,这是不对的。注意Docker还是很新的技术,还不成熟,正在成长,这意味着还有很多烦人的bug和缺乏的功能。对新技术感兴趣这没错,但是最好要弄清楚新技术的正确使用场景和需要注意和妥协之处。现在,Docker很容易应用到开发环境。使用Docker可以很容易地搭建出很多不同的环境(至少,给人的感觉是能够搭建出不同的环境),这对于开发很有用。
  而在生产环境里,新技术的成长阵痛限制了使用场景。比如,Docker不直接支持对多机器的网络和资源的监控,这使得几乎无法用在生产环境里。当然也有很多有潜力的地方,比如可以将同一个package从开发环境直接部署到生产环境。还有一些Docker运行时特性对于生产环境也很有用。但是总的来说,在生产环境里,目前限制多于优势。这并不是说无法成功运用到生产环境,只是现在还不能指望它一下子成熟和完备。
  4. Docker是跨OS的
  另一个误解是Docker在任意和环境上工作。这可能来自于装卸货物的集装箱的类比,但是软件和操作系统的关系可不像船位那么直接。
  实际上,Docker只是Linux上的技术。并且Docker依赖特定的内核特性,必须要有最新版本的内核才行。基于不同OS的差异性,跨OS时,如果使用的不是最底层通用的特性,会遇到严重的问题。这些问题可能只有1%的发生率,但是当你在多台服务器上部署时,1%也是致命的。
  虽然Docker只在Linux上运行,但是也可以在OS X或者Windows上使用Docker。使用boot2docker会在OS X或Windows机器上运行一个Linux虚拟机,这样Docker可以在这个虚拟机里运行。
  5. Docker增强应用的安全性
  觉得Docker可以改进代码和交付代码过程的安全性,这也是误解。这也是真实的集装箱和软件上容器的差别。Docker是一种容器化技术,添加了编排方法。但是Linux的容器有一些安全漏洞可能会被攻击。Docker并没有为这些漏洞添加任何安全层或者补丁。它还不是能保护应用的铁布衫。
  从Java角度看
  Docker在Java开发人员中已经有些应用。Docker的某些特性让我们更容易构建可扩展的上下文。不像uber-,Docker可以帮助你将所有的依赖(包括JVM!)打包到一个随时可发布的镜像里。这是Docker吸引广大开发人员的重要特性。但是,这也会带来一些隐患。一般来说,程序员需要用不同的方式和代码交互 - 监控它,调试它,链接它,调优它。。。如果使用Docker,这些都会需要额外的工作。
  比如,我们想使用jconsole,它依赖于JMX功能,JMX因为要使用RMI又需要网络。使用Docker的话就不是很直接,需要一些技巧去开启所需端口。我们最初发现这个问题是当我们想要构建Takipi的Docker安装器,我们不得不在容器里JVM之外运行了一个后台程序。详细的解决在GitHub上。
  另外一个很严重的问题是Docker容器的性能调优相当困难。当使用容器时,你不知道每个容器到底会分配多少内存。如果你有20个容器,内存会以你不确定的方式分配给它们。如果你打算用参数-Xmx调优堆的大小,就很困难,因为对Docker容器内JVM的处理取决于能够自动得到该容器分配到的内存大小。如果都不知道分配了多少内存,性能调优几乎不可能。
  Docker是很有意思的技术,有一些真实有效的使用场景。作为一个新兴技术,还需要大量时间来解决缺失的功能和已知的bug。但是,现在这个领域的确有很多的炒作。不过记住哦,炒作可不是成功~
[ 责任编辑:李桢君 ]
HPE Octane为开发者和…
甲骨文的云战略已经完成第一阶段…
软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。
微信扫一扫
关注Chinabyte如何使用Docker 进行Java 开发_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
如何使用Docker 进行Java 开发
上传于||文档简介
&&如​何​使​用​D​o​c​k​e​r​ ​进​行​J​a​v​a​ ​开​发
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 使用ant进行java开发 的文章

 

随机推荐