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

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

  • JVM就像一个虚拟机,它与操作系统分开的应用程序
  • Maven,pipe理依赖关系
  • Spring Boot,支持像tomcat那样embeddedJ2EE servelet容器,所有的应用程序都可以作为标准的JAR文件输出。

所以,除了你自己需要安装JDK之外,其他的一切都是一致的和有组织的。 我比较下面的Java和Docker:

  • JAR – >图像
  • JVM – > VM

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

依靠。 你的代码有多less版本支持? 你如何部署你的代码? 你使用java以外的任何数据库和库吗?

Docker主要是为了简化开发过程,即使一个开发人员的机器与其他人不同。 虽然java通过使用jvm来解决这个问题,但是当您使用的是新版Java版本的函数时,请考虑一下情况,但是您的对等机器上的Java版本较旧。 上帝禁止你的服务器。

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

总之,不,Docker对于Java来说不是必需的。 实际上对于任何语言都没有必要。 它只是在多个开发者和生产及其他服务之间创造一致性,因此也受到欢迎。

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

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

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

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

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

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

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

JVM不这样做。

哦,也有安全隐患。