
library/open-libertyOpen Liberty是一个轻量级、模块化的Java应用服务器,专为云原生环境设计。本仓库提供基于Ubuntu操作系统的多架构Docker镜像,支持多种Java版本和功能组合,适用于开发、测试和生产环境。
amd64、arm64v8、ppc64le、s390x以下是主要标签及其对应的Dockerfile链接:
beta、beta-java11、beta-java17kernel-slim、kernel-slim-java8-openj9、kernel-slim-java11-openj9、kernel-slim-java17-openj9full、full-java8-openj9、latest、full-java11-openj9、full-java17-openj925.0.0.3-kernel-slim-java8-openj9、25.0.0.6-full-java17-openj9等完整标签列表及Dockerfile链接请参见官方仓库。
镜像默认使用非root用户1001运行,属于组0。所有Open Liberty访问的文件夹已配置适当权限。
如需添加新文件夹并设置权限,可临时切换至root用户:
dockerfileUSER root RUN mkdir -p /myFolder && chown -R 1001:0 /myFolder USER 1001
通过COPY或ADD复制到镜像的文件需确保用户1001或组0有读和执行权限,推荐方法:
--chown参数
dockerfileCOPY --chown=1001:0 server.xml /config/server.xml
dockerfileUSER root RUN chown 1001:0 /config/server.xml USER 1001
bashdocker run -d -p 9080:9080 -p 9443:9443 --name open-liberty open-liberty:full
创建Dockerfile:
dockerfileFROM open-liberty:kernel-slim # 添加服务器配置 COPY --chown=1001:0 server.xml /config/ # 下载所需功能 RUN features.sh # 添加应用 COPY --chown=1001:0 Sample1.war /config/dropins/ # 配置服务器 RUN configure.sh
构建并运行:
bashdocker build -t my-liberty-app . docker run -d -p 9080:9080 -p 9443:9443 my-liberty-app
bashdocker run -d -p 9080:9080 -v /path/to/config:/config open-liberty:full
推荐创建包含应用和配置的自定义镜像,确保环境一致性和可移植性。基础Dockerfile结构:
dockerfileFROM open-liberty:kernel-slim COPY --chown=1001:0 server.xml /config/ RUN features.sh COPY --chown=1001:0 app.war /config/dropins/ RUN configure.sh
适合开发阶段快速迭代:
bashdocker run -d -p 9080:9080 -v /local/path/to/app.war:/config/dropins/app.war open-liberty:full
dockerfileFROM open-liberty:kernel COPY --chown=1001:0 hellospringboot.jar /config/dropins/spring/ COPY --chown=1001:0 server.xml /config/ RUN configure.sh
dockerfileFROM open-liberty:kernel as staging COPY --chown=1001:0 hellospringboot.jar /staging/app.jar RUN springBootUtility thin --sourceAppPath=/staging/app.jar --targetThinAppPath=/staging/thin-app.jar --targetLibCachePath=/staging/lib.index.cache FROM open-liberty:kernel COPY --chown=1001:0 server.xml /config COPY --from=staging /staging/lib.index.cache /lib.index.cache COPY --from=staging /staging/thin-app.jar /config/dropins/spring/ RUN configure.sh
默认情况下,镜像会生成自签名证书。如需使用自定义密钥库:
dockerfileENV KEYSTORE_REQUIRED "false" COPY --chown=1001:0 keystore.xml /config/configDropins/defaults/
提高多个容器的启动性能:
bashdocker run -d -v /host/path/classCache:/opt/ol/wlp/output/.classCache my-liberty-app
bashdocker run -d -p 9080:9080 -p 9443:9443 \ --tmpfs /opt/ol/wlp/output --tmpfs /logs -v /config --read-only \ open-liberty:full
full):包含所有运行时功能,适合快速启动和评估kernel-slim):仅包含Liberty内核,需手动添加所需功能,适合构建最小化生产镜像beta):包含最新功能,适合测试但不推荐生产环境使用WebSphere Liberty是Open Liberty的商业发行版,两者Docker镜像基本兼容,可通过修改FROM指令切换。主要差异:
/opt/ol,而非/opt/ibm/config文件夹存放服务器配置/output文件夹存放输出文件查看许可证信息了解镜像中包含的软件许可条款。使用本镜像即表示您同意所有包含软件的许可条款。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务