amd64/sapmachine Docker 镜像
官方SapMachine Docker镜像,由SAP构建的OpenJDK,提供Java运行环境。
SapMachine Docker 镜像文档
镜像概述
SapMachine 是 https://openjdk.org/ 的二进制发行版,由 SAP 构建、质量测试并提供长期支持。作为 SAP 业务技术平台 (SAP Business Technology Platform) 的默认 Java 运行时,SapMachine 也被 https://github.com/cloudfoundry/java-buildpack 支持为标准 JRE。更多信息请访问 SapMachine 官方网站。
注意:本镜像为 amd64 架构专用版本,是 https://hub.docker.com/_/sapmachine 的架构特定仓库。有关其他架构的信息,请参考 https://github.com/docker-library/official-images#architectures-other-than-amd64。
核心功能与特性
- 官方构建与支持:由 SAP 官方构建、测试并提供长期支持,确保与 SAP 产品生态的兼容性。
- 多 Java 版本覆盖:支持 Java 11、17、21、25 等多个版本,包括长期支持 (LTS) 版本。
- 多样化基础镜像:基于 Ubuntu (Noble 24.04、Jammy 22.04) 和 Alpine Linux (3.21、3.22),满足不同场景需求。
- 灵活的镜像变体:提供 JDK、JDK-headless、JRE、JRE-headless 等变体,适配开发、构建和运行时场景。
- 架构支持:专注于
amd64架构,其他架构(如arm64v8、ppc64le)可参考 https://hub.docker.com/_/sapmachine。
支持的标签
SapMachine 镜像标签包含 Java 版本、基础操作系统、JDK/JRE 类型等信息,以下为主要标签分类及示例(完整标签列表见 https://github.com/SAP/SapMachine-infrastructure):
Java 25 (最新版本)
- Ubuntu 基础镜像(Noble 24.04、Jammy 22.04):
- JDK:
latest、25、25-ubuntu、25-jdk-ubuntu-noble - JDK-headless:
jdk-headless、25-jdk-headless-ubuntu - JRE:
jre、25-jre-ubuntu-24.04 - JRE-headless:
jre-headless、25-jre-headless-ubuntu-jammy
- JDK:
- Alpine 基础镜像(3.22、3.21):
- JDK:
alpine、25-alpine-3.22、25-jdk-alpine - JRE:
jre-alpine、25-jre-alpine-3.21
- JDK:
Java 21 (LTS 版本)
- 主要标签:
21、21.0.8、21-jdk-ubuntu、21-jre-alpine-3.22
Java 17 (LTS 版本)
- 主要标签:
17、17.0.16、17-jdk-ubuntu-jammy、17-jre-alpine-3.21
Java 11 (LTS 版本)
- 主要标签:
11、11.0.28、11-jdk-headless-ubuntu-noble、11-jre-ubuntu-22.04
完整标签及对应 Dockerfile 链接可参考 https://github.com/SAP/SapMachine-infrastructure/tree/main/dockerfiles。
使用场景
- Java 应用开发与测试:提供完整 JDK 环境,适用于编译、调试 Java 应用。
- 生产环境运行时:轻量级 JRE 或 JRE-headless 变体可作为生产环境 Java 应用的运行时基础。
- SAP 生态应用部署:为 SAP 业务技术平台或基于 SAP 技术栈的应用提供兼容运行时。
- 容器化微服务:Alpine 变体镜像体积小,适合构建轻量级微服务容器。
使用方法
基础使用
拉取镜像并验证版本
bashdocker pull docker.xuanyuan.run/amd64/sapmachine:latest docker run -it --rm docker.xuanyuan.run/amd64/sapmachine:latest java -version
运行 Java 应用
以 JAR 包为例,创建自定义 Dockerfile:
dockerfileFROM docker.xuanyuan.run/amd64/sapmachine:latest WORKDIR /opt/myapp COPY myapp.jar . CMD ["java", "-jar", "myapp.jar"]
构建并运行自定义镜像:
bashdocker build -t myapp . docker run -it --rm -p 8080:8080 docker.xuanyuan.run/myapp
Docker Compose 示例
创建 docker-compose.yml:
yamlversion: '3.8' services: app: image: docker.xuanyuan.run/amd64/sapmachine:21-jre-alpine-3.22 container_name: sapmachine-app volumes: - ./myapp.jar:/opt/myapp/myapp.jar working_dir: /opt/myapp command: ["java", "-jar", "myapp.jar"] ports: - "8080:8080"
启动服务:
bashdocker-compose up -d
镜像变体说明
amd64/sapmachine:<version> (默认 Ubuntu 变体)
基于 Ubuntu 系统(如 Noble 24.04、Jammy 22.04),包含完整依赖,适合大多数场景。若需安装额外系统包,建议指定具体 Ubuntu 版本标签(如 25-ubuntu-24.04)以避免兼容性问题。
amd64/sapmachine:<version>-alpine (Alpine 变体)
基于 https://alpinelinux.org,镜像体积更小(基础镜像约 5MB),适合对镜像大小敏感的场景。注意:Alpine 使用 https://musl.libc.org 而非 glibc,部分依赖 glibc 的应用可能需要适配。
配置说明
环境变量
JAVA_OPTS:可通过该变量传递 JVM 参数,例如:bashdocker run -it --rm -e JAVA_OPTS="-Xmx512m -Xms256m" docker.xuanyuan.run/amd64/sapmachine:latest java $JAVA_OPTS -version
数据持久化
通过挂载卷实现应用数据或配置文件的持久化:
bashdocker run -it --rm -v ./config:/opt/myapp/config docker.xuanyuan.run/amd64/sapmachine:latest java -jar /opt/myapp/myapp.jar
支持信息
- 维护者:https://github.com/SAP/SapMachine
- 获取帮助:发送邮件至 ***
- 提交 issue:https://github.com/SAP/SapMachine/issues
- 支持架构:
amd64、arm64v8、ppc64le(其他架构镜像见 https://hub.docker.com/r/arm64v8/sapmachine/) - 镜像元数据:https://github.com/docker-library/repo-info/tree/master/repos/sapmachine(包含镜像元数据、传输大小等)
许可协议
- Dockerfile 及相关脚本:采用 http://www.apache.org/licenses/LICENSE-2.0.html 许可。
- SapMachine 产品:采用 https://github.com/SAP/SapMachine/blob/sapmachine/LICENSE。
镜像中包含的其他软件(如基础系统的 Bash 等)可能采用不同许可协议,用户需自行确保其使用符合所有相关许可要求。更多许可信息可参考 https://github.com/docker-library/repo-info/tree/master/repos/sapmachine。
amd64 命名空间的其他可用镜像:
镜像拉取方式
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
轩辕镜像加速拉取命令点我查看更多 sapmachine 镜像标签
DockerHub 原生拉取命令
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务