本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
amd64/open-liberty 镜像是 open-liberty 官方镜像 的 amd64 架构专用仓库。所有镜像均基于 Ubuntu 操作系统构建,若需使用基于 Universal Base Image 的变体,请参考 openliberty/open-liberty 仓库。
提供轻量级、可定制的 Open Liberty 运行时环境,用于在容器中部署和运行 Java EE 及 MicroProfile 应用程序,支持快速开发、测试和生产部署。
USER 1001(非 root)身份运行,增强安全性kernel-slim(精简内核)、full(完整功能)、beta(测试版)等多种标签,适配不同场景kernel-slim 镜像支持通过 features.sh 脚本动态下载所需功能特性,减小镜像体积springBootUtility 工具,支持 Spring Boot 应用的瘦应用打包和依赖缓存以下是 amd64/open-liberty 镜像的主要标签及对应的 Dockerfile 链接:
betabeta-java11beta-java17kernel-slim, kernel-slim-java8-openj9kernel-slim-java11-openj9kernel-slim-java17-openj9full, full-java8-openj9, latestfull-java11-openj9full-java17-openj9包含 25.0.0.6、25.0.0.9、25.0.0.10 等版本的 kernel-slim 和 full 变体,例如:
25.0.0.10-kernel-slim-java8-openj925.0.0.10-full-java17-openj9kernel-slim 镜像减小资源占用镜像默认以 USER 1001(非 root 用户)运行,所属用户组为 0。所有 Open Liberty 访问的目录已配置适当权限,扩展镜像时需确保新增文件/目录的权限正确。
如需为扩展 Dockerfile 中的其他目录配置权限,可临时切换至 root 用户:
USER root RUN mkdir -p /myFolder && chown -R 1001:0 /myFolder # 授予用户 1001 和组 0 权限 USER 1001
通过 COPY 或 ADD 复制到镜像的文件默认所有权为 root:0,需确保用户 1001 或组 0 具有读/执行权限,推荐以下方法:
复制前更新权限:设置文件的组权限为可读/执行
chmod g+rx server.xml # 确保组 0 可读写 server.xml
复制时指定权限(Docker 17.09+):使用 --chown 参数
COPY --chown=1001:0 server.xml /config/
复制后更新权限(不推荐,可能增加镜像层数):
USER root RUN chown 1001:0 /config/server.xml USER 1001
将应用及配置打包到镜像中,确保部署一致性,示例 Dockerfile:
FROM amd64/open-liberty:kernel-slim # 使用精简内核镜像 # 添加服务器配置 COPY --chown=1001:0 server.xml /config/ # 下载 server.xml 中声明的特性(仅 kernel-slim 支持) RUN features.sh # 添加应用 COPY --chown=1001:0 Sample1.war /config/dropins/ # 应用配置、应用临时修复并优化运行时缓存 RUN configure.sh
构建并运行:
docker build -t my-app . docker run -d -p 9080:9080 my-app # 映射容器 9080 端口到主机
适合快速迭代,直接挂载主机文件到容器:
# 挂载 WAR 包到 dropins 目录 docker run -d -p 80:9080 -p 443:9443 \ -v /tmp/DefaultServletEngine/dropins/Sample1.war:/config/dropins/Sample1.war \ amd64/open-liberty:full
挂载完整配置目录:
docker run -d -p 80:9080 \ -v /tmp/DefaultServletEngine:/config \ # 挂载主机配置目录到容器 /config amd64/open-liberty:full
创建 server.xml 并启用 springBoot-2.0 特性:
<server> <featureManager> <feature>springBoot-2.0</feature> </featureManager> <httpEndpoint host="*" httpPort="9080" httpsPort="-1"/> </server>
构建应用镜像:
FROM amd64/open-liberty:kernel-slim COPY --chown=1001:0 hellospringboot.jar /config/dropins/spring/ # Spring Boot 应用需放入 dropins/spring 目录 COPY --chown=1001:0 server.xml /config/ RUN configure.sh
运行:
docker build -t spring-app . docker run -d -p 8080:9080 spring-app
利用 springBootUtility 将胖 JAR 拆分为 thin 应用和依赖缓存,优化镜像层数:
# 阶段 1:生成 thin 应用和依赖缓存 FROM amd64/open-liberty:kernel-slim as staging COPY --chown=1001:0 hellospringboot.jar /staging/ RUN springBootUtility thin \ --sourceAppPath=/staging/hellospringboot.jar \ --targetThinAppPath=/staging/thin-app.jar \ --targetLibCachePath=/staging/lib.index.cache # 阶段 2:构建最终镜像 FROM amd64/open-liberty:kernel-slim COPY --chown=1001:0 server.xml /config/ COPY --from=staging --chown=1001:0 /staging/lib.index.cache /lib.index.cache # 依赖缓存层 COPY --from=staging --chown=1001:0 /staging/thin-app.jar /config/dropins/spring/ RUN configure.sh
默认情况下,镜像启动时会在 /config/configDropins/defaults/keystore.xml 生成自签名证书的密钥库配置,通过以下环境变量控制:
启用默认密钥库(默认):
ENV KEYSTORE_REQUIRED "true"
禁用默认密钥库(使用自定义密钥库时):
ENV KEYSTORE_REQUIRED "false"
自定义密钥库推荐放置于 /config/configDropins/defaults/keystore.xml。
通过 ARG 变量在 Dockerfile 中启用企业功能(如会话缓存、监控),并通过 configure.sh 应用配置,详情参考 官方文档。
IBM JRE 支持通过共享内存文件 /opt/ol/wlp/output/.classCache 实现类数据共享,提升多容器启动速度,配置方法:
挂载主机目录:
docker run -d -p 9080:9080 \ -v /host/path/to/classCache:/opt/ol/wlp/output/.classCache \ my-app
使用数据卷容器:
# 创建数据卷容器 docker run -v /opt/ol/wlp/output/.classCache --name classcache amd64/open-liberty true # 挂载数据卷 docker run -d -p 9080:9080 --volumes-from classcache my-app
Liberty 运行时需写入 /opt/ol/wlp/output 和 /logs 目录,只读模式下需将其挂载为临时文件系统:
docker run -d -p 9080:9080 \ --read-only \ --tmpfs /opt/ol/wlp/output \ # 临时文件系统用于输出 --tmpfs /logs \ # 临时文件系统用于日志 -v /host/config:/config \ # 挂载配置目录(需可写,或预构建密钥库) amd64/open-liberty:full
# 启动完整版镜像,映射 HTTP(9080) 和 HTTPS(9443) 端口 docker run -d -p 9080:9080 -p 9443:9443 amd64/open-liberty:full
# 构建镜像 docker build -t spring-boot-app -f Dockerfile.spring . # 运行容器,映射 8080 端口 docker run -d -p 8080:9080 --name my-spring-app spring-boot-app
version: '3' services: liberty-app: image: amd64/open-liberty:kernel-slim-java17-openj9 build: . # 基于当前目录 Dockerfile 构建 ports: - "9080:9080" volumes: - ./config:/config # 挂载配置目录(开发环境) environment: - KEYSTORE_REQUIRED=false # 使用自定义密钥库 user: "1001:0"
amd64/open-liberty:<version>(默认)包含完整功能和常用依赖,适合快速启动和通用场景,若不确定需求,推荐使用此变体。
amd64/open-liberty:<version>-slim(精简版)仅包含运行 Open Liberty 所需的最小依赖,体积更小,适合构建仅包含必要功能的定制化镜像(如 kernel-slim 标签)。
WebSphere Liberty 是 Open Liberty 的商业发行版,两者镜像高度兼容,可通过修改 FROM 指令切换:
/opt/ol/opt/ibm/config(推荐使用此目录访问配置)/config/configDropins/defaults/keystore.xmlamd64、arm64v8、ppc64le、s390x(详情)
免费版仅支持 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