首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么要在Docker中运行JVM进程

为什么要在Docker中运行JVM进程
EN

Stack Overflow用户
提问于 2019-03-19 23:47:04
回答 2查看 494关注 0票数 0

我的问题可以改为:https://data-flair.training/blogs/advantages-and-disadvantages-of-docker/ for 。

我发现了大量关于Docker和VM的信息,但是我在Docker优势中找不到一篇关于Java的文章。

Java程序正在作为JVM进程运行,这已经是一个“所谓的”虚拟机。为什么许多IT人员想要在docker中运行Java程序?

有一些工具可以帮助管理码头容器: kubernetes、docker、Docker等等。部署整个应用程序(例如,微服务体系结构)更容易,任何定制配置都非常容易:docker-compose updocker-compose.yml定义了配置。使用这些工具进行编排和缩放也很容易。

是否可以像管理容器一样管理JVM (Java虚拟机)?有这样的工具或技术存在吗?我想到了一个硬编码的有限解决方案,就是制作bash脚本来部署所有的应用程序栈。

在容器之前,我们将在云中的虚拟机中运行我们的应用程序。但是虚拟机是昂贵的(运行应用程序需要更多的资源,还有主机操作系统和VM )。Docker技术允许在容器中运行应用程序进程,使用主机操作系统(例如,假设容器和主机操作系统具有相同的内核,它们都是基于Linux的)。

容器的另一个好处是易于开发。不必为应用程序安装不同的依赖项(数据库、缓存、应用服务器、代理服务器等),您可以从它们获取所需的映像并运行容器,而无需在开发计算机上安装这些依赖项。

但是,为什么不在主机上运行JVM进程来生产呢?例如,我们有五个容器,并且我们知道--它们将在那里运行一个Java (这很重要;否则,为每个技术堆栈使用一个单独的容器是有意义的)。因此,我们可以安装一台带有JRE的主机,并且可以在没有容器的情况下运行5个JVM进程。为什么不行?

EN

回答 2

Stack Overflow用户

发布于 2019-03-19 23:51:50

正如您在问题的最后一段中所说的,容器比VM便宜得多,因为它不能将硬件和整个操作系统虚拟化。

此外,在制作码头形象时,只需抓取一个容器并使其立即运行就很容易了。

票数 1
EN

Stack Overflow用户

发布于 2019-03-20 06:04:00

让我们想象一下,您正在主机上运行5个JVM进程。

如果:

  • 如果应用程序重载,您希望扩展到其他主机(通过手工/脚本、配置代理、dns为新节点在其他主机上添加更多JVM进程)。使用docker编排工具,只需单击一次或部署即可进行缩放。
  • 如果进程死了,您需要编写监视/ cron脚本来确保它是活动的,如果它停止了,就重新启动它。我们可以用编曲工具自愈。 还有很多编曲工具的想法:
代码语言:javascript
运行
复制
Provisioning and deployment of containers
Redundancy and availability of containers
Scaling up or removing containers to spread application load evenly across host infrastructure
Movement of containers from one host to another if there is a shortage of resources in a host, or if a host dies
Allocation of resources between containers
External exposure of services running in a container with the outside world
Load balancing of service discovery between containers
Health monitoring of containers and hosts
Configuration of an application in relation to the containers running it

不过,编排工具的架构将是复杂的。我们应该根据目的和目前的架构来决定。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55251575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档