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

时间:2016-01-05 03:41:34

标签: java docker

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

  • JVM就像一个将应用程序与OS分开的VM
  • Maven,管理依赖关系
  • Spring Boot,支持嵌入像tomcat这样的J2EE服务器容器,所有应用程序都可以作为标准JAR文件输出。

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

  • JAR - >图像
  • JVM - > VM

那么,Docker对Java有意义吗?

3 个答案:

答案 0 :(得分:2)

Java不需要Docker。您可以在操作系统上运行JVM而无需担心Docker。

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

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

答案 1 :(得分:2)

取决于。您的代码有多少版本支持?你如何部署代码?您是否使用除java以外的任何数据库和库?

Docker主要用于简化开发过程,即使一台开发机器与其他机器不同。虽然java通过使用jvm来处理这个问题,但是当您使用较新的java版本的函数时,请考虑一个案例,但是您的对等体在其计算机上具有较旧的Java版本。上帝禁止你的服务器。

与您的Java应用程序一起启动其他服务时也是如此。它们将是数据库和其他将被版本化的服务。虽然java的内部库本身是由maven维护的,但它们无法控制您所依赖的其他服务。

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

答案 2 :(得分:0)

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

Docker与JVM不相似! Docker是一个可以从外部配置的易于部署的易于部署的环境,可以轻松启动,停止和克隆。

Docker类似于其他虚拟化技术,如VirtualBox或VMWare,但绝对不是JVM。

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

JVM不这样做。

哦,也有安全隐患。