adoptopenjdk/openjdk8-openj9AdoptOpenJDK OpenJ9 Docker 镜像包含基于 Eclipse OpenJ9 JVM 的 OpenJDK 8 二进制文件,由 AdoptOpenJDK 维护。该镜像旨在为 Java 应用提供高性能、低内存占用的运行环境,支持多种操作系统和硬件架构。
AdoptOpenJDK 提供两类 Docker 镜像:
amd64、ppc64le、s390x 架构,同一命令可在不同架构下运行。amd64、ppc64le、s390x 等架构下统一部署的场景。按操作系统分组,包含 JDK 完整版、JDK 精简版(Slim)、JRE 完整版,以下为典型标签示例(完整标签及 Dockerfile 可参考 GitHub 仓库):
alpine、jdk8u292-b10_openj9-0.26.0-alpine(Dockerfile)alpine-slim、jdk8u292-b10_openj9-0.26.0-alpine-slim(Dockerfile)alpine-jre、jre8u292-b10_openj9-0.26.0-alpine(Dockerfile)centos、jdk8u292-b10_openj9-0.26.0-centos(Dockerfile)centos-slim、jdk8u292-b10_openj9-0.26.0-centos-slim(Dockerfile)centos-jre、jre8u292-b10_openj9-0.26.0-centos(Dockerfile)debian、jdk8u292-b10_openj9-0.26.0-debian(Dockerfile)debian-slim、jdk8u292-b10_openj9-0.26.0-debian-slim(Dockerfile)debian-jre、jre8u292-b10_openj9-0.26.0-debian(Dockerfile)ubi、jdk8u292-b10_openj9-0.26.0-ubi(Dockerfile)ubi-slim、jdk8u292-b10_openj9-0.26.0-ubi-slim(Dockerfile)ubi-jre、jre8u292-b10_openj9-0.26.0-ubi(Dockerfile)支持 ClefOS、Leap、Tumbleweed 等,标签格式类似(如 clefos、leap-jre、tumbleweed-nightly),详细可参考 GitHub 仓库。
每日构建的开发版镜像,标签格式为 <os>-nightly(如 alpine-nightly、debian-jre-nightly),适合测试最新功能,生产环境慎用。
bashdocker run --rm adoptopenjdk/openjdk8-openj9:latest java -version
bash# 挂载本地 JAR 文件并运行 docker run --rm -v /path/to/local/app:/opt/app adoptopenjdk/openjdk8-openj9:jre java -jar /opt/app/japp.jar
创建 Dockerfile:
dockerfileFROM adoptopenjdk/openjdk8-openj9:ubi # 使用 UBI 基础镜像 RUN mkdir /opt/app COPY japp.jar /opt/app CMD ["java", "-jar", "/opt/app/japp.jar"]
构建并运行:
bashdocker build -t my-java-app . docker run -it --rm my-java-app
OpenJ9 的类数据共享功能可减少多 JVM 实例的内存占用并加速启动,需通过共享目录实现容器间缓存共享。
dockerfileFROM adoptopenjdk/openjdk8-openj9:latest RUN mkdir /opt/shareclasses /opt/app COPY japp.jar /opt/app # 启用类共享,指定缓存目录 CMD ["java", "-Xshareclasses:cacheDir=/opt/shareclasses", "-jar", "/opt/app/japp.jar"]
bashdocker build -t japp . docker run -it -v /host/path/to/shareclasses:/opt/shareclasses japp
bashdocker create -v /opt/shareclasses --name classcache japp /bin/true
bashdocker run -it --volumes-from classcache japp
yamlversion: '3' services: app1: build: . volumes_from: - classcache app2: build: . volumes_from: - classcache classcache: image: japp volumes: - /opt/shareclasses command: /bin/true
amd64、ppc64le、s390x
镜像中包含的其他软件(如基础系统组件、Bash 等)可能受其他许可证约束,用户需自行确保合规使用。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务