从历史上看,HotSpot 在 docker 容器中运行错误判断分配的资源(例如 RAM)的记录很差。不过,情况正在慢慢好转。
OpenJ9 如何与 docker 容器保持一致,以及它在多大程度上了解容器提供的资源(内存、套接字、线程等)?
此外,在 JavaOne 2017 演讲中提到 OpenJ9 可以跨不同的 OpenJ9 VM 缓存 jit 编译的类。当虚拟机被限制在不同的容器(或)如果容器化的 JVM 共享一个 docker 卷时,这种共享缓存是否可行?
最佳答案
FROM 采用openjdk/openjdk9-openj9:x86_64-alpine-jdk-9.181
运行 mkdir/opt/shareclasses
&& mkdir/opt/app
复制 japp.jar/opt/app
CMD ["java", "-Xshareclasses:cacheDir=/opt/shareclasses", "-jar", "/opt/app/japp.jar"]
然后,您需要构建和运行镜像并提交生成的容器并将其作为您的基本镜像。
docker build -t japp:latest .
docker run japp
docker commit container_id japp
关于OpenJ9 和 docker 容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46783329/