本仓库是websphere-liberty镜像的arm64v8架构构建版本。更多信息请参见镜像文档中的"非amd64架构说明"和***镜像FAQ中的"镜像源在Git中变更后怎么办?"。
维护者:
IBM WASdev社区
获取帮助:
WASdev社区
kernel-java11-openj9
kernel-java17-openj9
full-java11-openj9
full-java17-openj9
25.0.0.6-kernel-java11-openj9
25.0.0.6-kernel-java17-openj9
25.0.0.6-full-java11-openj9
25.0.0.6-full-java17-openj9
25.0.0.9-kernel-java11-openj9
25.0.0.9-kernel-java17-openj9
25.0.0.9-full-java11-openj9
25.0.0.9-full-java17-openj9
25.0.0.10-kernel-java11-openj9
25.0.0.10-kernel-java17-openj9
25.0.0.10-full-java11-openj9
25.0.0.10-full-java17-openj9
问题反馈地址:
[***]
支持的架构:(更多信息)
amd64、arm64v8、ppc64le、s390x
镜像 artifact 详情:
repo-info 仓库的 repos/websphere-liberty/ 目录(历史记录)
(包含镜像元数据、传输大小等)
镜像更新:
official-images 仓库的 library/websphere-liberty 标签
official-images 仓库的 library/websphere-liberty 文件(历史记录)
本描述的来源:
docs 仓库的 websphere-liberty/ 目录(历史记录)
本仓库中的所有镜像均使用 Ubuntu 作为操作系统。使用通用基础镜像(Universal Base Image)的变体请参见此仓库。
有关这些镜像的更多信息,请参见我们的 GitHub 仓库。
此镜像默认以非 root 用户 1001(用户 ID 1001)运行,属于组 0。请确保阅读以下内容以设置适当的文件夹和文件权限。
WebSphere Liberty 访问的所有文件夹均已设置适当权限,但如果您的扩展 Dockerfile 需要访问其他位置的权限,只需临时切换到 root 用户并设置所需权限,例如:
dockerfileUSER root RUN mkdir -p /myFolder && chown -R 1001:0 /myFolder USER 1001
通过 COPY 或 ADD 命令复制到镜像中的所有文件,其所有权会变为 root:0。因此,必须确保这些文件对用户 1001 或组 0 具有读和执行权限。
您可以通过以下几种方式实现:
由于文件所有权会变为 root:0,只需确保文件的组权限(chmod 命令的中间数字)包含读/执行权限。例如,执行 chmod g+rx server.xml 确保 server.xml 可被组 0 读取和执行,应用的 EAR、WAR 文件、JDBC 驱动等文件也需如此处理。
如果使用 Docker v17.09.0-ce 及更高版本,可在 ADD 或 COPY 命令中使用 --chown=<user>:<group> 标志。例如:COPY --chown=1001:0 jvm.options /config/jvm.options。这是推荐方式,无需在构建前修改权限,也不会增加镜像层。
如果需要兼容旧版本 Docker CE,且不想预处理文件权限,可临时切换到 root 用户修改文件权限。例如:
dockerfileUSER root RUN chown 1001:0 /config/jvm.options RUN chown 1001:0 /output/resources/security/ltpa.keys USER 1001
注意:此方式会复制文件所在的镜像层,可能导致镜像体积增大(取决于文件大小)。因此建议优先使用复制前或复制时更新权限的方式。
本仓库提供多个标签:
beta:包含最新月度测试版(beta)的安装包内容。kernel 和 full 两类:
kernel:仅包含 Liberty 核心(kernel),无额外运行时功能。推荐作为自定义镜像的基础,可仅包含特定应用所需的功能。full:包含所有 Liberty 功能,适用于需要完整功能集的场景。以下 Dockerfile 以 kernel 标签为基础,复制应用和配置文件,通过 configure.sh 脚本从在线仓库下载所需功能:
dockerfileFROM arm64v8/websphere-liberty:kernel COPY --chown=1001:0 Sample1.war /config/dropins/ COPY --chown=1001:0 server.xml /config/ RUN configure.sh
最佳实践是创建包含应用及其配置的扩展镜像(称为“应用镜像”),实现自包含、可预测的部署,不依赖外部卷或运行时文件。
如需构建最小化的 WebSphere Liberty 应用镜像,可基于 kernel 标签,添加 artifacts 并运行 configure.sh 以按需扩展功能。详见 GitHub 文档。
WebSphere Liberty 镜像包含内置 XML 片段,可启用会话缓存、监控等企业功能。通过 Dockerfile 中的 ARG 参数触发,并由 configure.sh 脚本配置。详见 GitHub 说明。
此方式适用于快速实验或早期开发(如“迭代开发时快速运行应用”),不推荐用于多团队或多环境场景(此类场景建议使用应用镜像)。
启动后台容器,将主机 WAR 文件挂载到容器的 dropins 目录,并映射端口:
console$ docker run -d -p 80:9080 -p 443:9443 \ -v /tmp/DefaultServletEngine/dropins/Sample1.war:/config/dropins/Sample1.war \ arm64v8/websphere-liberty:webProfile8
启动后,可通过 http://localhost/Sample1/SimpleServlet 访问应用(如使用 boot2docker 虚拟机,需用 boot2docker ip 获取虚拟机 IP)。
挂载主机的完整服务器配置目录,并启动容器:
console$ docker run -d -p 80:9080 \ -v /tmp/DefaultServletEngine:/config \ arm64v8/websphere-liberty:webProfile8
full 镜像包含 springBootUtility 工具,可将 Spring Boot 应用拆分为瘦应用(thin app)和依赖库缓存。如需在 kernel 镜像中使用此功能,需在 server.xml 中启用 springBoot-1.5 或 springBoot-2.0 功能,并运行 configure.sh。
dockerfileFROM arm64v8/websphere-liberty:kernel COPY --chown=1001:0 hellospringboot.jar /config/dropins/spring/ COPY --chown=1001:0 server.xml /config/ RUN configure.sh
构建并运行:
console$ docker build -t app . $ docker run -d -p 8080:9080 app
通过多阶段构建分离依赖库和应用代码,优化镜像层:
dockerfileFROM arm64v8/websphere-liberty:kernel as staging COPY --chown=1001:0 hellospringboot.jar /staging/myFatApp.jar COPY --chown=1001:0 server.xml /config/ RUN springBootUtility thin \ --sourceAppPath=/staging/myFatApp.jar \ --targetThinAppPath=/staging/myThinApp.jar \ --targetLibCachePath=/staging/lib.index.cache FROM arm64v8/websphere-liberty:kernel COPY --chown=1001:0 server.xml /config COPY --from=staging /staging/lib.index.cache /lib.index.cache COPY --from=staging /staging/myThinApp.jar /config/dropins/spring/myThinApp.jar RUN configure.sh
默认情况下,容器启动时会在 /config/configDropins/defaults/keystore.xml 生成密钥库配置,包含自动生成的密码,Liberty 会据此创建自签名证书的默认密钥库和信任库(详见 知识中心)。
如需使用自定义密钥库/信任库,需确保 /config/configDropins/defaults/keystore.xml 文件已存在(可在构建镜像时添加),文件可包含自定义密钥库配置或空的 <server></server> 片段以禁用默认行为。
IBM JRE 提供“类数据共享”功能,通过共享内存文件在多个 JVM 间共享数据。Liberty 镜像默认查找 /opt/ibm/wlp/output/.classCache 文件,可通过主机目录挂载或数据卷容器共享此文件。
consoledocker run -d -p 80:9080 -p 443:9443 \ -v /tmp/websphere-liberty/classCache:/opt/ibm/wlp/output/.classCache app
创建数据卷容器:
consoledocker run -e LICENSE=accept -v /opt/ibm/wlp/output/.classCache \ --name classcache arm6

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