本仓库是s390x架构的open-liberty***镜像的"每架构"仓库,基于Ubuntu操作系统构建。所有镜像默认使用非root用户运行,旨在提供轻量级、可扩展的Java应用服务器环境,用于部署和运行Java EE、Jakarta EE及微服务应用。
注意:如需使用基于通用基础镜像(Universal Base Image)的变体,请参见openliberty/open-liberty仓库。
amd64、arm64v8、ppc64le、s390x(本仓库为s390x架构专用)USER 1001(组0)运行,降低容器权限风险。springBootUtility工具,支持Spring Boot应用的瘦应用打包和依赖缓存。kernel-slim构建仅包含必要特性的最小化应用镜像。full镜像快速启动开发或测试环境。以下为s390x架构镜像支持的主要标签及其对应的Dockerfile链接:
beta:基于Java 8 Dockerfilebeta-java11:基于Java 11 Dockerfilebeta-java17:基于Java 17 Dockerfilekernel-slim、kernel-slim-java8-openj9:Java 8 Dockerfilekernel-slim-java11-openj9:Java 11 Dockerfilekernel-slim-java17-openj9:Java 17 Dockerfilefull、full-java8-openj9、latest:Java 8 Dockerfilefull-java11-openj9:Java 11 Dockerfilefull-java17-openj9:Java 17 Dockerfile如25.0.0.6-kernel-slim-java8-openj9、25.0.0.10-full-java17-openj9等,包含具体版本号,适合需要版本固定的生产环境。
镜像默认以非root用户1001(组0)运行。扩展镜像时如需访问额外目录,需临时切换至root用户调整权限:
dockerfileUSER root RUN mkdir -p /myFolder && chown -R 1001:0 /myFolder # 授予用户1001对/myFolder的权限 USER 1001 # 切换回非root用户
通过COPY或ADD复制文件到镜像时,需确保文件可被用户1001或组0读写执行:
dockerfileCOPY --chown=1001:0 server.xml /config/ # 直接指定所有者为1001:0
bashchmod g+rx server.xml # 确保组0有读/执行权限
dockerfileUSER root RUN chown 1001:0 /config/server.xml USER 1001
推荐基于kernel-slim构建仅包含必要特性的应用镜像,步骤如下:
创建Dockerfile:
dockerfileFROM s390x/open-liberty:kernel-slim # 复制服务器配置(声明所需特性) COPY --chown=1001:0 server.xml /config/ # 下载server.xml中声明的特性(仅kernel-slim支持) RUN features.sh # 复制应用到dropins目录 COPY --chown=1001:0 Sample1.war /config/dropins/ # 应用配置、应用临时修复并优化运行时缓存 RUN configure.sh
构建镜像:
bashdocker build -t my-openliberty-app .
运行容器:
bashdocker run -d -p 9080:9080 my-openliberty-app
开发阶段可通过卷挂载动态加载配置和应用:
bash# 挂载应用WAR包到dropins目录 docker run -d -p 9080:9080 -p 9443:9443 \ -v /local/path/Sample1.war:/config/dropins/Sample1.war \ s390x/open-liberty:full # 挂载整个服务器配置目录 docker run -d -p 9080:9080 \ -v /local/path/server-config:/config \ s390x/open-liberty:full
通过Dockerfile中的ARG参数启用企业功能(如会话缓存、监控),由configure.sh脚本应用配置:
dockerfileFROM s390x/open-liberty:kernel-slim # 启用会话缓存和监控 ARG ENABLE_SESSION_CACHE=true ARG ENABLE_MONITORING=true COPY --chown=1001:0 server.xml /config/ RUN features.sh && configure.sh # configure.sh会应用ARG对应的XML片段
dockerfileFROM s390x/open-liberty:kernel-slim # 复制Spring Boot应用到dropins/spring目录(仅支持单个应用) COPY --chown=1001:0 hellospringboot.jar /config/dropins/spring/ COPY --chown=1001:0 server.xml /config/ # server.xml需启用springBoot-2.0特性 RUN configure.sh
dockerfile# 阶段1:生成瘦应用和依赖缓存 FROM s390x/open-liberty:kernel-slim as staging COPY --chown=1001:0 hellospringboot.jar /staging/fat.jar RUN springBootUtility thin \ --sourceAppPath=/staging/fat.jar \ --targetThinAppPath=/staging/thin.jar \ --targetLibCachePath=/staging/lib.index.cache # 阶段2:构建最终镜像 FROM s390x/open-liberty:kernel-slim COPY --chown=1001:0 server.xml /config/ COPY --from=staging /staging/lib.index.cache /lib.index.cache # 依赖缓存 COPY --from=staging /staging/thin.jar /config/dropins/spring/ RUN configure.sh
默认情况下,镜像会生成自签名证书并在/config/configDropins/defaults/keystore.xml中配置密钥库。如需禁用默认行为或使用自定义密钥库:
禁用默认密钥库生成:
dockerfileENV KEYSTORE_REQUIRED "false"
添加自定义密钥库:
dockerfileCOPY --chown=1001:0 mykeystore.jks /config/resources/security/ # 在server.xml或configDropins/defaults/keystore.xml中配置密钥库
通过共享类缓存文件加速JVM启动,步骤如下:
使用主机目录共享缓存:
bashdocker run -d -p 9080:9080 \ -v /host/path/classCache:/opt/ol/wlp/output/.classCache \ my-openliberty-app
使用数据卷容器共享缓存:
bash# 创建数据卷容器 docker run -v /opt/ol/wlp/output/.classCache --name classcache s390x/open-liberty true # 运行应用容器,挂载缓存卷 docker run -d -p 9080:9080 --volumes-from classcache my-openliberty-app
Liberty运行时需写入/opt/ol/wlp/output和/logs目录,只读模式下需将其挂载为临时文件系统:
bashdocker run -d -p 9080:9080 -p 9443:9443 \ --tmpfs /opt/ol/wlp/output --tmpfs /logs \ # 临时文件系统 -v /host/config:/config \ # 挂载配置目录(需可写,或预构建密钥库) --read-only \ s390x/open-liberty:full
bash# 启动完整版镜像,映射HTTP(9080)/HTTPS(9443)端口 docker run -d -p 9080:9080 -p 9443:9443 --name liberty s390x/open-liberty:full
创建docker-compose.yml:
yamlversion: '3.8' services: liberty-app: image: s390x/open-liberty:kernel-slim build: . # 基于当前目录Dockerfile构建 ports: - "9080:9080" - "9443:9443" volumes: - ./config:/config # 本地配置目录(开发用) - classcache:/opt/ol/wlp/output/.classCache # 类缓存卷 environment: - KEYSTORE_REQUIRED=true # 启用默认密钥库生成 volumes: classcache: # 命名卷,共享类缓存
启动服务:
bashdocker-compose up -d
| 环境变量 | 说明 | 默认值 |
|---|---|---|
KEYSTORE_REQUIRED | 是否生成默认密钥库配置(true/false) | true |
WebSphere Liberty是Open Liberty的商业发行版,两者镜像兼容,可通过修改FROM指令切换:
/opt/ol/opt/ibm切换示例:
dockerfile# FROM s390x/open-liberty:kernel-slim FROM s390x/websphere-liberty:kernel-slim # 切换为商业版
镜像中软件的许可证信息参见Open Liberty LICENSE。
镜像可能包含基础系统(如Ubuntu)及依赖软件,其许可证信息可在repo-info仓库中查询。
使用前请确保符合所有包含软件的许可证要求。

来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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