本仓库镜像包含由AdoptOpenJDK构建的、集成Eclipse OpenJ9虚拟机的OpenJDK 11二进制文件。AdoptOpenJDK提供两类Docker镜像:
两类镜像使用相同的AdoptOpenJDK Java二进制文件,核心差异在于操作系统支持范围。
amd64、ppc64le、s390x架构,同一命令可在不同架构环境中运行。本仓库镜像支持以下基础操作系统(OS):
amd64(x86_64)ppc64le(PowerPC 64位小端)s390x(IBM System z)按操作系统分组,主要标签格式为[OS]-[jdk|jre|slim],示例如下(完整标签及Dockerfile见对应链接):
Alpine
alpine:JDK完整版,示例标签jdk-11.0.11_9_openj9-0.26.0-alpine,Dockerfile见https://github.com/AdoptOpenJDK/openjdk-docker/blob/master/11/jdk/alpine/Dockerfile.openj9.releases.full%E3%80%82alpine-slim:JDK精简版,示例标签jdk-11.0.11_9_openj9-0.26.0-alpine-slim,Dockerfile见https://github.com/AdoptOpenJDK/openjdk-docker/blob/master/11/jdk/alpine/Dockerfile.openj9.releases.slim%E3%80%82alpine-jre:JRE完整版,示例标签jre-11.0.11_9_openj9-0.26.0-alpine,Dockerfile见https://github.com/AdoptOpenJDK/openjdk-docker/blob/master/11/jre/alpine/Dockerfile.openj9.releases.full%E3%80%82CentOS
centos:JDK完整版,示例标签jdk-11.0.11_9_openj9-0.26.0-centos,Dockerfile见https://github.com/AdoptOpenJDK/openjdk-docker/blob/master/11/jdk/centos/Dockerfile.openj9.releases.full%E3%80%82centos-slim:JDK精简版,示例标签jdk-11.0.11_9_openj9-0.26.0-centos-slim,Dockerfile见https://github.com/AdoptOpenJDK/openjdk-docker/blob/master/11/jdk/centos/Dockerfile.openj9.releases.slim%E3%80%82centos-jre:JRE完整版,示例标签jre-11.0.11_9_openj9-0.26.0-centos,Dockerfile见https://github.com/AdoptOpenJDK/openjdk-docker/blob/master/11/jre/centos/Dockerfile.openj9.releases.full%E3%80%82其他操作系统
debian、debian-slim、debian-jre,Dockerfile见https://github.com/AdoptOpenJDK/openjdk-docker/blob/master/11/jdk/debian/Dockerfile.openj9.releases.full%E3%80%82ubi、ubi-slim、ubi-jre、ubi-minimal-jre,Dockerfile见https://github.com/AdoptOpenJDK/openjdk-docker/blob/master/11/jdk/ubi/Dockerfile.openj9.releases.full%E3%80%82latest(基于Ubuntu的JDK完整版)、slim(基于Ubuntu的JDK精简版)、jre(基于Ubuntu的JRE完整版)。每日更新的开发版,标签格式在稳定版基础上添加-nightly后缀,例如:
alpine-nightly(Alpine JDK每日构建版)centos-nightly-slim(CentOS JDK精简版每日构建版)nightly(默认Ubuntu JDK每日构建版)完整标签及Dockerfile见https://github.com/AdoptOpenJDK/openjdk-docker%E3%80%82
slim标签减少镜像体积,优化容器启动速度。nightly标签验证最新JVM特性或修复。拉取镜像
bash# 拉取最新稳定版JDK(基于Ubuntu) docker pull adoptopenjdk/openjdk11-openj9:latest # 拉取Alpine JRE精简版 docker pull adoptopenjdk/openjdk11-openj9:alpine-jre
验证JVM版本
bashdocker run --rm adoptopenjdk/openjdk11-openj9:latest java -version
输出示例:
openjdk version "11.0.11" 2021-04-20 OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.11+9) Eclipse OpenJ9 VM AdoptOpenJDK (build openj9-0.26.0, JRE 11 Linux amd64-64-Bit Compressed References 20210421_932 (JIT enabled, AOT enabled) OpenJ9 - 0394ef754 OMR - 582366ae5 JCL - 3b09cfd7e9 based on jdk-11.0.11+9)
通过Dockerfile将Java应用打包为镜像:
dockerfile# 使用Alpine JRE精简版作为基础镜像 FROM adoptopenjdk/openjdk11-openj9:alpine-jre # 创建应用目录 RUN mkdir -p /opt/app # 复制应用JAR包 COPY your-app.jar /opt/app/ # 启动命令 CMD ["java", "-jar", "/opt/app/your-app.jar"]
构建并运行:
bashdocker build -t your-app:v1 . docker run -d -p 8080:8080 --name your-app-container your-app:v1
OpenJ9提供类数据共享(CDS)功能,可通过共享类缓存提升JVM启动速度并减少内存占用。需将缓存目录挂载到容器外部(主机目录或数据卷)。
方法1:挂载主机目录
bash# 构建镜像(含CDS配置) docker build -t app-with-cds - <<EOF FROM adoptopenjdk/openjdk11-openj9:latest RUN mkdir /opt/shareclasses /opt/app COPY your-app.jar /opt/app/ CMD ["java", "-Xshareclasses:cacheDir=/opt/shareclasses", "-jar", "/opt/app/your-app.jar"] EOF # 运行容器,挂载主机缓存目录 docker run -d -v /host/path/to/shareclasses:/opt/shareclasses --name app-cds app-with-cds
方法2:使用数据卷容器
bash# 创建数据卷容器(持久化缓存目录) docker create -v /opt/shareclasses --name cds-cache adoptopenjdk/openjdk11-openj9:latest /bin/true # 运行应用容器,共享缓存卷 docker run -d --volumes-from cds-cache --name app-cds app-with-cds
yamlversion: '3' services: java-app: image: adoptopenjdk/openjdk11-openj9:alpine-jre container_name: java-app volumes: - ./app:/opt/app # 挂载应用目录 - cds-cache:/opt/shareclasses # 共享CDS缓存 command: ["java", "-Xshareclasses:cacheDir=/opt/shareclasses", "-jar", "/opt/app/your-app.jar"] ports: - "8080:8080" restart: unless-stopped volumes: cds-cache: # 定义CDS缓存数据卷
Dockerfile及相关构建脚本采用Apache License 2.0授权。
镜像中可能包含基础OS及依赖组件(如Bash等),其许可证需遵循各自分发方要求。用户应确保使用本镜像符合所有组件的许可证条款。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务