本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
本仓库是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 用户并设置所需权限,例如:
USER 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 用户修改文件权限。例如:
USER 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 脚本从在线仓库下载所需功能:
FROM 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 目录,并映射端口:
$ 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)。
挂载主机的完整服务器配置目录,并启动容器:
$ 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。
FROM arm64v8/websphere-liberty:kernel COPY --chown=1001:0 hellospringboot.jar /config/dropins/spring/ COPY --chown=1001:0 server.xml /config/ RUN configure.sh
构建并运行:
$ docker build -t app . $ docker run -d -p 8080:9080 app
通过多阶段构建分离依赖库和应用代码,优化镜像层:
FROM 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 文件,可通过主机目录挂载或数据卷容器共享此文件。
docker run -d -p 80:9080 -p 443:9443 \ -v /tmp/websphere-liberty/classCache:/opt/ibm/wlp/output/.classCache app
创建数据卷容器:
docker 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429