繁体   English   中英

是否有必要在Java中使用Docker?

[英]Is it necessary to use Docker in Java?

由于Docker是当前非常热门的技术,但我只是想知道Java是否必要? 我在下面列出了我的原因,欢迎任何反馈:

  • JVM就像VM,将应用程序与OS分开
  • Maven,管理依赖项
  • Spring Boot,支持嵌入tomcat之类的J2EE servelet容器,所有应用程序都可以作为标准JAR文件输出。

因此,除了需要自己安装JDK之外,其他所有内容都是一致且井井有条的。 我将Java和Docker进行如下比较:

  • JAR->图片
  • JVM->虚拟机

那么,Docker对Java真的意味着什么?

Docker对于Java而言不是必需的。 您可以在操作系统上运行JVM,而无需担心Docker。

Docker与JVM相似之处在于它们都是虚拟化级别,但是将Docker提供的虚拟化与JVM相同可能没有帮助。 Docker实际上是将多个应用程序/服务打包到可移植容器中的便捷工具。 它允许您在多个可能不同的计算机上构建相同的虚拟环境,或者销毁虚拟环境并重新启动它。

如果使用不同版本的JVM运行jar文件,则可能会得到不同的结果。 例如,如果jar包含Java 8函数,但您尝试在Java 7 VM上运行,则会遇到异常。 Docker的要点是您可以控制版本,因此不会发生这种情况。

要看。 您的代码有多少版本支持? 您如何部署代码? 您是否使用Java以外的任何数据库和库?

Docker主要是为了简化开发流程,即使一个开发人员的机器与其他开发人员的机器不同。 尽管Java通过使用jvm来解决此问题,但请考虑以下情况:您使用的是Java新版本上的函数,而您的同级计算机上却有Java旧版本。 上帝禁止它为您服务。

当您与Java应用程序一起启动其他服务时,同样适用。 它们将是将进行版本控制的数据库和其他服务。 尽管Java内部库本身由maven维护,但是它们无法控制您依赖的其他服务。

简而言之,不,对于Java而言,Docker并不是必需的。 实际上,对于任何语言而言,它都是不必要的。 它只是在多个开发人员,生产和其他服务之间建立了一致性,因此很受欢迎。

您不必在Java中使用Docker,但不必出于您给出的原因。

Docker与JVM不同! Docker的目的是要有一个隔离的,易于部署的环境,该环境可以从外部进行配置,并且可以轻松启动,停止和克隆。

Docker与其他虚拟化技术(例如VirtualBox或VMWare)相似,但绝对不是JVM。

您可以使用Docker选择您的操作系统,防火墙设置,JVM版本等等。 您可以使用Docker部署1个或1000个版本的软件。 您可以使用Docker为客户或同事提供完整的工作环境。

JVM不会这样做。

哦,还有安全隐患。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM