java程序员需警惕5大docker误区

java程序员需警惕5大docker误区

ID:34707878

大小:53.68 KB

页数:4页

时间:2019-03-09

java程序员需警惕5大docker误区_第1页
java程序员需警惕5大docker误区_第2页
java程序员需警惕5大docker误区_第3页
java程序员需警惕5大docker误区_第4页
资源描述:

《java程序员需警惕5大docker误区》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java程序员需警惕5大Docker误区——动力节点javaDocker现在很火,容器技术看上不无所不能,但这实际上是一种误解,不要被炒作出来的泡沫迷住双眼,动力节点的Java老师抛去炒作,理性地从Java程序员的角度,列举出Docker目前的五大误区,帮助你更好地理解Docker的优势和问题。如果我们抛去那些媒体和厂商们的炒作,如何才能更理性的使用Docker?Docker最近备受关注,原因显而易见。如何成功交付代码一直困扰着大家。传统的容器技术在众多需求和模板中乱成一团。而Docker可以简单且重复的创建容器。相比其它容

2、器,使用Docker可以更快、更自然的交付代码。Duang,Docker火了!随之而来也有一些误解和误区。不要太相信别人说Docker好用或者不好用。自己理性地全面思考一下Docker,会帮助你真正理解是否真的需要它。主要误区1. Docker是轻量级虚拟机这是大家初学Docker时最主要的误解。这种误解倒也情有可原,Docker的确看上去有点像虚拟机。Docker网站上甚至有人比较了Docker和虚拟机的区别。但是,Docker实际上不是轻量级虚拟机,而是改进了的Linux容器(LXC)。Docker和虚拟机是完全不一样的

3、,如果你把Docker容器当成轻量级虚拟机来用,会遇到很多问题。在使用Docker之前,必须了解Docker容器和虚拟机有很多本质的区别。资源隔离:Docker达不到虚拟机所能提供的资源隔离水平。虚拟机的资源是高度隔离的,而Docker从设计之初就需要共享一些资源,这些资源是Docker无法隔离和保护的,比如页缓存和内核熵池。(注:内核熵池很有趣,它收集并且存储系统操作生成的随机比特。机器在需要随机化时会使用这个池,比如密码相关。)如果Docker容器占用了这些共享资源,那么其它进程在这些资源被释放前只能等待。开销:大多数人

4、都知道虚拟机的CPU和RAM能提供类似物理机的性能,但是有很多额外的IO开销。因为放弃了虚拟机的guestOS,Docker的package更小,比起虚拟机需要更少的存储开销。但这并不意味着Docker没有任何开销问题。Docker容器依然需要注意IO开销的问题,只不过没有虚拟机严重而已。内核使用:Docker容器和虚拟机在内核使用上完全不同。每个虚拟机使用一个内核。Docker容器则是在所有容器间共享内核。共享内核带来一些效率的提升,但是以高可用和冗余为代价。如果虚拟机发生了内核崩溃,只有这个内核上的虚拟机会受影响。而Do

5、cker容器如果内核崩溃了,所有的容器都会受影响。2. Docker使得应用可扩展因为Docker可以在很短的时间内在多个服务器上部署代码,自然有人会觉得Docker可以让应用自身变得可扩展。不幸的是,这是错误的。代码是应用的基石,而Docker并不会重写代码。应用的可扩展性依然取决于程序员。使用Docker并不会自动得让你的代码易于扩展,只是让这些代码更容易跨服务器部署而已。3. Docker在生产环境广为使用因为Docker势头正劲,很多人便认为Docker可以在生产环境上大规模使用。事实上,这是不对的。注意Docker

6、还是很新的技术,还不成熟,正在成长,这意味着还有很多烦人的bug和待完善的功能。对新技术感兴趣这没错,但是最好要弄清楚新技术的正确使用场景和需要注意的地方。现在,Docker很容易应用到开发环境。使用Docker可以很容易地搭建出很多不同的环境(至少,给人的感觉是能够搭建出不同的环境),这对于开发很有用。而在生产环境中,Docker的不成熟和不完善也限制了使用场景。比如,Docker不直接支持对多机器的网络和资源的监控,这使得它几乎无法在生产环境中使用。当然也有很多有潜力的地方,比如可以将同一个package从开发环境直接部

7、署到生产环境。还有一些Docker运行时特性对于生产环境也很有用。但是总的来说,在生产环境里,目前不足多于优势。这并不是说无法成功运用到生产环境,只是现在还不能指望它一下子成熟和完美。4.Docker是跨OS的另一个误解是Docker在任意操作系统和环境上都可以工作。这可能来自于装卸货物的集装箱的类比,但是软件和操作系统的关系可不像船位那么简单直接。实际上,Docker只是Linux上的技术。并且Docker依赖特定的内核特性,必须要有最新版本的内核才行。基于不同OS的差异性,跨OS时,如果使用的不是最底层通用的特性,会遇到

8、很多麻烦的问题。这些问题可能只有1%的发生率,但是当你在多台服务器上部署时,1%也是致命的。虽然Docker只在Linux上运行,但是也可以在OSX或者Windows上使用Docker。使用boot2docker会在OSX或Windows机器上运行一个Linux虚拟机,这样Docker可以

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

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

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