注意:这是https://hub.docker.com/_/ibmjava%E7%9A%84%60i386%60%E6%9E%B6%E6%9E%84%E6%9E%84%E5%BB%BA%E7%9A%84%22per-architecture%22%E4%BB%93%E5%BA%93%E2%80%94%E2%80%94%E6%9B%B4%E5%A4%9A%E4%BF%A1%E6%81%AF%EF%BC%8C%E8%AF%B7%E5%8F%82%E8%A7%81%E5%AE%98%E6%96%B9%E9%95%9C%E5%83%8F%E6%96%87%E6%A1%A3%E4%B8%AD%E7%9A%84%22%E9%99%A4amd64%E4%B9%8B%E5%A4%96%E7%9A%84%E6%9E%B6%E6%9E%84%EF%BC%9F%22https://github.com/docker-library/official-images#architectures-other-than-amd64%E5%92%8C%E5%AE%98%E6%96%B9%E9%95%9C%E5%83%8FFAQ%E4%B8%AD%E7%9A%84%22%E9%95%9C%E5%83%8F%E6%BA%90%E5%9C%A8Git%E4%B8%AD%E5%B7%B2%E6%9B%B4%E6%94%B9%EF%BC%8C%E7%8E%B0%E5%9C%A8%E8%AF%A5%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F%22https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what%E3%80%82
维护者:
https://github.com/ibmruntimes/ci.docker
获取帮助:
IBM Java运行时和SDK的developerWorks论坛
Dockerfile链接警告:此镜像在i386架构上不受支持
提交issues的位置:
https://github.com/ibmruntimes/ci.docker/issues%EF%BC%9B%E6%9C%89%E5%85%B3%E6%95%85%E9%9A%9C%E6%8E%92%E9%99%A4%EF%BC%8C%E8%AF%B7%E5%8F%82%E8%A7%81%E6%88%91%E4%BB%AC%E7%9A%84%E5%A6%82%E4%BD%95%E6%93%8D%E4%BD%9C...%EF%BC%9F%E9%A1%B5%E9%9D%A2
支持的架构:(https://github.com/docker-library/official-images#architectures-other-than-amd64)
https://hub.docker.com/r/amd64/ibmjava/%E3%80%81https://hub.docker.com/r/ppc64le/ibmjava/%E3%80%81https://hub.docker.com/r/s390x/ibmjava/
已发布镜像工件详情:
https://github.com/docker-library/repo-info/blob/master/repos/ibmjava (https://github.com/docker-library/repo-info/commits/master/repos/ibmjava)
(镜像元数据、传输大小等)
镜像更新:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fibmjava
https://github.com/docker-library/official-images/blob/master/library/ibmjava (https://github.com/docker-library/official-images/commits/master/library/ibmjava)
本描述的来源:
https://github.com/docker-library/docs/tree/master/ibmjava (https://github.com/docker-library/docs/commits/master/ibmjava)
本仓库中的镜像包含IBM® SDK, Java™技术版。有关最新版本和新增功能的更多信息,请参见developerWorks上的sdk8和developerWorks上的jdk11。有关使用此镜像的限制,请参见许可部分。有关IBM® SDK, Java™技术版的更多信息、API文档以及教程、指南和IBM Cloud中的Java使用方法,请参见IBM developerWorks。
Java及所有基于Java的商标和徽标是Oracle和/或其关联公司的商标或注册商标。
Eclipse OpenJ9是一种高性能、可扩展的Java虚拟机(JVM)实现,凝聚了数百人年的努力。由IBM贡献给Eclipse项目,OpenJ9 JVM是IBM SDK, Java技术版产品的核心组件,而该产品是许多IBM企业软件产品的核心。在Eclipse基金会持续开发OpenJ9确保了更广泛的协作、新的创新,以及影响下一代Java应用程序OpenJ9开发的机会。Eclipse OpenJ9 Docker镜像可通过AdoptOpenJDK获取,具体可从https://hub.docker.com/u/adoptopenjdk/%E8%8E%B7%E5%8F%96%E3%80%82
这里有三种类型的Docker镜像:软件开发工具包(SDK)、Java运行时环境(JRE)以及JRE的小内存占用版本(SFJ)。这些镜像可用作构建运行应用程序的自定义镜像的基础。
小内存占用JRE
小内存占用JRE(SFJ)是专为希望开发和部署基于云的Java应用程序的Web开发人员设计的。云环境中不需要的Java工具和功能(如Java控制面板)已被移除。运行时环境经过精简,仅提供核心、必要的功能,大大减少了磁盘和内存占用。
Alpine Linux
如果您关注整体镜像大小,可考虑使用Alpine Linux。Alpine Linux是基于musl libc和Busybox的精简版Linux,其https://hub.docker.com/_/alpine/%E5%A4%A7%E5%B0%8F%E7%BA%A6%E4%B8%BA5 MB。由于其极小的 size 和较少的已安装软件包,它具有更小的***面,从而提高了安全性。IBM SDK依赖于gnu glibc,其源码可在https://github.com/sgerrand/docker-glibc-builder/releases/%E6%89%BE%E5%88%B0%E3%80%82%E5%AE%89%E8%A3%85%E6%AD%A4%E5%BA%93%E4%BC%9A%E4%BD%BF%E9%95%9C%E5%83%8F%E5%A4%A7%E5%B0%8F%E5%A2%9E%E5%8A%A0%E7%BA%A68 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™技术版的官方支持操作系统。
多架构镜像
现在提供以下架构的Docker镜像:
ibmjava现在支持多架构,因此以下相同的命令可在所有支持的架构上运行。这也意味着不再需要在镜像名称前添加架构前缀,因为这会自动完成。
要使用JRE镜像运行预构建的jar文件,请使用以下命令:
dockerfileFROM i386/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 i386/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技术版提供了类数据共享功能。此机制在同一主机上运行的多个Java虚拟机(JVM)之间提供透明且动态的数据共享,从而减少每个JVM实例消耗的物理内存量。通过在内存中提供部分验证的类和可能预加载的类,此机制还可以缩短JVM的启动时间。
要在同一主机上不同容器中运行的JVM之间启用类数据共享,容器之间必须共享一个公共位置。此要求可通过主机或数据卷容器满足。启用后,类数据共享会在公共位置创建一个命名的"类缓存"(一个内存映射文件)。通过向JVM传递-Xshareclasses选项启用此功能,如以下Dockerfile示例所示:
dockerfileFROM i386/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/sharedclasses。通过主机共享时,必须将主机路径挂载到容器中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
参见https://hub.docker.com/_/websphere-liberty/%EF%BC%8C%E5%AE%83%E5%9F%BA%E4%BA%8E%E6%AD%A4IBM Java docker镜像构建。
Dockerfile和相关脚本根据Apache License 2.0许可。
镜像中安装的产品许可:
与所有Docker镜像一样,这些镜像可能还包含其他受其他许可约束的软件(如基础发行版中的Bash等,以及主要软件的任何直接或间接依赖项)。
一些能够自动检测到的其他许可信息可能位于https://github.com/docker-library/repo-info/tree/master/repos/ibmjava%E4%B8%AD%E3%80%82
对于任何预构建镜像的使用,镜像用户有责任确保对此镜像的任何使用符合其中包含的所有软件的相关许可。
以下是 i386/ibmjava 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务