为什么要使用docker?是不是像JVM这样的java文件已在JVM上运行?

我刚开始使用java,刚刚开始掌握Maven和Gradle的构建过程和依赖管理系统.

据我所知,Docker是一个很好的工具,用于在docker主机内部署容器.我认为这与Vagrant一​​样有用(尽管功能上并不相同),因为它消除了环境问题,而不是预期的问题.

我的理解是,在使用Maven或Gradle构建东西时,您可以创建一个JAR文件或包含其中二进制文件的WAR文件,以便它可以在JVM所在的任何地方运行.使用Docker,这似乎是多余的.我想Docker可以用于其他东西,比如从C运行的程序或其他东西? Docker是否因Java使用而多余?

最佳答案
Java的“可移植性”主要是营销hogwash.

> Java程序可以像其他任何东西一样进行系统调用(如文件系统访问或分支子进程),因此除非您使用安全管理器进行花哨的操作,否则JVM不会隔离很多东西.
>没有一个“JVM”,而是每隔几年发布一系列不兼容的JVM版本.还有竞争实现,有时候使用Oracle的JVM或OpenJDK也很重要.

Docker也不仅仅是隔离和可重复性.例如,JVM没有类似UnionFS的东西.

转载注明原文:为什么要使用docker?是不是像JVM这样的java文件已在JVM上运行? - 代码日志