
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
arm64v8/open-liberty 是 Open Liberty 官方镜像的 arm64v8 架构专用版本,基于 Ubuntu 操作系统构建,用于在 64 位 ARM 架构环境中运行企业级 Java 应用。Open Liberty 是一款轻量级、模块化的开源 Java 运行时,支持 Java EE 和 MicroProfile 规范,适用于构建和部署微服务及传统企业应用。
features.sh 脚本动态扩展)1001(组 0)运行,增强安全性kernel-slim 标签仅包含核心运行时,可按需扩展功能,减小镜像体积full 标签包含所有 Open Liberty 功能,开箱即用springBootUtility 工具,支持 Spring Boot 应用的瘦打包和依赖缓存amd64、ppc64le、s390x 等架构的 Open Liberty 镜像保持配置一致性kernel-slim 构建最小化微服务镜像,降低资源消耗springBootUtility 优化 Spring Boot 应用的容器化部署| 标签类型 | 说明 | 示例标签 |
|---|---|---|
beta | 包含最新测试版功能,不建议生产使用 | beta、beta-java11 |
kernel-slim | 仅含核心运行时,需通过 features.sh 动态添加功能(推荐用于自定义镜像) | kernel-slim、kernel-slim-java17-openj9 |
full | 包含所有 Open Liberty 功能,开箱即用 | full、full-java11-openj9、latest |
标签格式:[版本号-]类型[-java<版本>-openj9]
25.0.0.6(可选,默认使用最新稳定版)beta、kernel-slim、fulljava8、java11、java17(默认Java 8)openj9(IBM OpenJ9 JVM)docker run 命令)运行默认 full 镜像
bashdocker run -d -p 9080:9080 -p 9443:9443 docker.xuanyuan.run/arm64v8/open-liberty:full
挂载本地应用到 dropins 目录
bashdocker run -d -p 9080:9080 \ -v /本地路径/Sample1.war:/config/dropins/Sample1.war \ docker.xuanyuan.run/arm64v8/open-liberty:full
/config/dropins 目录,服务器自动部署基于 kernel-slim 构建最小化应用镜像
dockerfile# 使用 kernel-slim 作为基础镜像(仅含核心功能) FROM docker.xuanyuan.run/arm64v8/open-liberty:kernel-slim # 复制应用配置文件(声明所需功能) COPY --chown=1001:0 server.xml /config/ # 动态添加 server.xml 中声明的功能(仅 kernel-slim 支持) RUN features.sh # 复制应用 WAR 包到 dropins 目录 COPY --chown=1001:0 Sample1.war /config/dropins/ # 优化服务器配置(应用临时修复、预缓存等) RUN configure.sh
构建并运行:
bashdocker build -t my-openliberty-app . docker run -d -p 9080:9080 docker.xuanyuan.run/my-openliberty-app
默认用户
镜像默认以非 root 用户 1001(组 0)运行。所有 Open Liberty 访问的目录已预设权限,若需扩展其他目录权限,需临时切换至 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 # 确保组有读/执行权限
| 环境变量 | 说明 | 默认值 |
|---|---|---|
KEYSTORE_REQUIRED | 是否自动生成默认密钥库(keystore.xml) | "true" |
WLP_OUTPUT_DIR | 服务器输出目录(日志、临时文件等) | /opt/ol/wlp/output |
LOG_DIR | 日志文件目录 | /logs |
基础部署(完整 JAR 包)
dockerfileFROM docker.xuanyuan.run/arm64v8/open-liberty:kernel-slim # 复制 Spring Boot JAR 和配置文件 COPY --chown=1001:0 hellospringboot.jar /config/dropins/spring/ COPY --chown=1001:0 server.xml /config/ # 配置服务器(自动扩展所需功能) RUN configure.sh
瘦应用部署(分离依赖与应用代码)
利用 springBootUtility 工具分离依赖,优化镜像层:
dockerfile# 阶段1:生成瘦应用和依赖缓存 FROM docker.xuanyuan.run/arm64v8/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 docker.xuanyuan.run/arm64v8/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
默认情况下,镜像会自动生成密钥库。若需使用自定义密钥库,需:
ENV KEYSTORE_REQUIRED "false"keystore.xml 复制到 /config/configDropins/defaults/:dockerfileCOPY --chown=1001:0 keystore.xml /config/configDropins/defaults/
需将可写目录挂载为临时文件系统:
bashdocker run -d -p 9080:9080 \ --read-only \ --tmpfs /opt/ol/wlp/output \ # 临时存储输出文件 --tmpfs /logs \ # 临时存储日志 -v /本地路径/config:/config \ # 挂载配置目录(需包含预生成的密钥库) arm64v8/open-liberty:full
kernel-slim vs full| 特性 | kernel-slim | full |
|---|---|---|
| 功能集 | 仅核心运行时,需动态添加功能 | 包含所有 Open Liberty 功能 |
| 镜像体积 | 较小(约 300MB) | 较大(约 1GB) |
| 用途 | 构建最小化自定义镜像 | 快速测试、开发环境、功能齐全场景 |
| 扩展方式 | 通过 features.sh 动态添加功能 | 无需扩展,直接使用所有功能 |
WebSphere Liberty 是 Open Liberty 的商业发行版,两者镜像兼容,可通过修改 FROM 语句切换:
dockerfile# 从 Open Liberty 切换到 WebSphere Liberty FROM docker.xuanyuan.run/websphere-liberty:full-java11-openj9
差异点:
/opt/ol/opt/ibmyamlversion: '3.8' services: open-liberty: image: docker.xuanyuan.run/arm64v8/open-liberty:full-java17-openj9 ports: - "9080:9080" # HTTP - "9443:9443" # HTTPS volumes: - ./server.xml:/config/server.xml # 挂载自定义配置 - app-data:/config/dropins # 持久化应用部署目录 - class-cache:/opt/ol/wlp/output/.classCache # 共享类缓存 environment: - KEYSTORE_REQUIRED=false # 使用自定义密钥库 user: "1001:0" restart: unless-stopped volumes: app-data: class-cache:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 arm64v8/open-liberty 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: