** 注意 :这是ibmjava镜像的“特定架构”仓库,用于ppc64le架构构建——更多信息参见镜像文档中的“非amd64架构?”及*镜像FAQ中的“镜像源在Git中变更后如何处理?”。
-** 维护者 **:
IBM Runtime Technologies
-** 获取帮助 **:
IBM Java运行时和SDK的developerWorks论坛
Dockerfile链接8-jre, jre, 8, latest
8-sfj, sfj
8-sdk, sdk
-** 问题反馈 **:
GitHub;故障排除参见How Do I ...?页面
-** 支持的架构 **:(更多信息)
amd64、ppc64le、s390x
-** 镜像 artifact 详情 **:
repo-info仓库的repos/ibmjava/目录(历史记录)
(镜像元数据、传输大小等)
-** 镜像更新 **:
official-images仓库的library/ibmjava标签
official-images仓库的library/ibmjava文件(历史记录)
-** 本文档来源 **:
docs仓库的ibmjava/目录(历史记录)
本仓库镜像包含IBM® SDK, Java™ Technology Edition。有关最新版本及新特性,参见developerWorks上的sdk8和jdk11。使用本镜像的限制参见许可部分。有关IBM® SDK, Java™ Technology Edition的更多信息、API文档及教程、实践指南和IBM Cloud中的Java使用方法,参见IBM developerWorks。
Java及所有基于Java的商标和徽标是Oracle和/或其关联公司的商标或注册商标。
Eclipse OpenJ9是高性能、可扩展的Java虚拟机(JVM)实现,凝聚了数百人年的开发 effort。由IBM贡献给Eclipse项目,OpenJ9 JVM是IBM SDK, Java Technology Edition产品的核心组件,后者是许多IBM企业软件产品的基础。Eclipse基金会对OpenJ9的持续开发确保了更广泛的协作、创新,并为下一代Java应用提供了影响OpenJ9开发的机会。Eclipse OpenJ9 Docker镜像可通过AdoptOpenJDK获取,详见此处。
本仓库提供三种Docker镜像:软件开发工具包(SDK)、Java运行时环境(JRE)及小内存占用JRE(SFJ)。这些镜像可用作构建自定义镜像的基础,用于运行应用。
小内存占用JRE(SFJ)专为希望开发和部署云原生Java应用的Web开发者设计。移除了云环境中不需要的Java工具和功能(如Java控制面板),仅保留核心必要功能,显著减少磁盘和内存占用。
若关注镜像总体大小,可考虑使用Alpine Linux。Alpine Linux是基于musl libc和Busybox的精简Linux版本,其Docker镜像大小约5 MB。因其极小的体积和精简的已安装包,***面更小,安全性更高。IBM SDK依赖gnu glibc,源码参见此处。安装此库会使镜像大小增加约8 MB。下表比较JRE版本8.0-3.10的Docker镜像大小:
| JRE | JRE | SFJ | SFJ |
|---|---|---|---|
| Ubuntu | Alpine | Ubuntu | Alpine |
| 305 MB | 184 MB | 220 MB | 101 MB |
注意:Alpine Linux不是IBM® SDK, Java™ Technology Edition的*支持操作系统。**
现已提供以下架构的Docker镜像:
ibmjava支持多架构,因此下文命令在所有支持的架构上均适用,无需在镜像名前添加架构前缀(自动处理)。
使用JRE镜像运行预构建JAR文件,示例Dockerfile:
dockerfileFROM ppc64le/ibmjava:jre RUN mkdir /opt/app COPY japp.jar /opt/app CMD ["java", "-jar", "/opt/app/japp.jar"]
构建并运行Docker镜像:
consoledocker build -t japp . docker run -it --rm japp
若需将JAR文件放在主机文件系统而非容器内,可通过挂载主机路径到容器:
dockerfileFROM ppc64le/ibmjava:jre CMD ["java", "-jar", "/opt/app/japp.jar"]
consoledocker build -t japp . docker run -it -v /path/on/host/system/jars:/opt/app japp
IBM SDK, Java™ Technology Edition提供类数据共享功能。该机制支持同一主机上多个Java虚拟机(JVM)之间透明动态共享数据,减少每个JVM实例的物理内存占用,并通过提供部分验证的类和预加载类提升JVM启动速度。
要在不同容器的JVM间启用类数据共享,需通过主机或数据卷容器共享公共位置。启用后,类数据共享会在公共位置创建命名“类缓存”(内存映射文件)。通过向JVM传递-Xshareclasses选项启用此功能,示例Dockerfile:
dockerfileFROM ppc64le/ibmjava:jre RUN mkdir /opt/shareclasses RUN mkdir /opt/app COPY japp.jar /opt/app CMD ["java", "-Xshareclasses:cacheDir=/opt/shareclasses", "-jar", "/opt/app/japp.jar"]
cacheDir子选项指定类缓存位置(如/opt/shareclasses)。通过主机共享时,需将主机路径挂载到容器中JVM期望的类缓存位置:
consoledocker build -t japp . docker run -it -v /path/on/host/shareclasses/dir:/opt/shareclasses japp
通过数据卷容器共享时,创建命名数据卷容器共享卷:
consoledocker create -v /opt/shareclasses --name classcache japp /bin/true
使用--volumes-from标志挂载共享卷启动JVM容器:
consoledocker run -it --volumes-from classcache japp
参见Websphere-Liberty镜像,其基于此IBM Java Docker镜像构建。
Dockerfile及相关脚本采用Apache License 2.0许可。
镜像中安装产品的许可:
与所有Docker镜像一样,本镜像可能包含其他软件,这些软件可能采用其他许可(如基础发行版中的Bash等,以及主要软件的任何直接或间接依赖项)。
可在repo-info仓库的ibmjava/目录中找到一些自动检测到的额外许可信息。
对于任何预构建镜像的使用,镜像用户有责任确保对本镜像的任何使用符合其中包含的所有软件的相关许可。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429