专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题轩辕镜像免费版
其他
关于我们网站地图
热门搜索:
open-liberty

i386/open-liberty

i386

基于Ubuntu的Open Liberty多架构Docker镜像

下载次数: 0状态:社区镜像维护者:i386仓库类型:镜像最近更新:6 年前
轩辕镜像,不浪费每一次拉取。点击查看
中文简介
标签下载
镜像标签列表与下载命令
轩辕镜像,不浪费每一次拉取。点击查看

注意: 这是 https://hub.docker.com/_/open-liberty 的 i386 架构构建的 "per-architecture" 仓库——有关更多信息,请参阅官方镜像文档中的 https://github.com/docker-library/official-images#architectures-other-than-amd64 和官方镜像常见问题中的 https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what%E3%80%82

快速参考

  • 维护者:
    https://github.com/OpenLiberty/ci.docker

  • 获取帮助:
    Open Liberty 社区

支持的标签及相应的 Dockerfile 链接

警告: 此镜像在 i386 架构上不受支持

快速参考(续)

  • 提交 issue 的位置:
    https://github.com/OpenLiberty/ci.docker/issues?q=

  • 支持的架构: (https://github.com/docker-library/official-images#architectures-other-than-amd64)
    https://hub.docker.com/r/amd64/open-liberty/, https://hub.docker.com/r/arm64v8/open-liberty/, https://hub.docker.com/r/ppc64le/open-liberty/, https://hub.docker.com/r/s390x/open-liberty/

  • 已发布镜像工件详情:
    https://github.com/docker-library/repo-info/blob/master/repos/open-liberty (https://github.com/docker-library/repo-info/commits/master/repos/open-liberty)
    (镜像元数据、传输大小等)

  • 镜像更新:
    https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fopen-liberty
    https://github.com/docker-library/official-images/blob/master/library/open-liberty (https://github.com/docker-library/official-images/commits/master/library/open-liberty)

  • 此描述的来源:
    https://github.com/docker-library/docs/tree/master/open-liberty (https://github.com/docker-library/docs/commits/master/open-liberty)

概述

此仓库中的所有镜像均使用 Ubuntu 作为操作系统。对于使用 Universal Base Image 的变体,请参阅 https://hub.docker.com/r/openliberty/open-liberty/%E3%80%82

有关这些镜像的更多信息,请参阅我们的 https://github.com/OpenLiberty/ci.docker#container-images%E3%80%82

镜像用户

此镜像默认以 USER 1001(非 root)身份运行,属于组 0。请确保阅读以下内容以设置适当的文件夹和文件权限。

更新文件夹权限

Open Liberty 访问的所有文件夹都已设置适当的权限,但如果您的扩展 Dockerfile 需要访问其他位置的权限,您可以临时切换到 root 并提供所需权限,例如:

dockerfile
USER root
RUN mkdir -p /myFolder && chown -R 1001:0 /myFolder
USER 1001

更新文件权限

您必须确保通过 COPY 或 ADD 复制到镜像中的所有工件具有正确的权限,以便用户 1001 或组 0 可以 读取 和 执行,因为文件传输到 Docker 镜像时所有权会更改为 root:0。

您有几种方法可以实现:复制文件前、复制过程中或复制后。

复制前更新权限

由于文件所有权将更改为 root:0,您只需设置所有者组的权限以能够读取/执行工件(即 chmod 命令的中间数字)。例如,您可以执行 chmod g+rx server.xml 以确保 server.xml 以及应用程序的 EAR 或 WAR 文件、JDBC 驱动程序或其他通过 COPY 或 ADD 放置在镜像上的文件可以被组 0 读取和执行。

复制过程中更新权限

如果您使用 Docker v17.09.0-ce 及更高版本,可以在 ADD 或 COPY 期间利用 --chown=<user>:<group> 标志。例如:COPY --chown=1001:0 jvm.options /config/jvm.options。这是首选方法,因为您无需在调用 docker build 前更改权限,也不会在生成的镜像中复制层。

复制后更新权限

如果您的 Dockerfile 需要与旧版本的 Docker CE 兼容,并且不想预处理文件权限,您可以临时切换到 root 以更改所需文件的权限。例如:

dockerfile
USER root
RUN chown 1001:0 /config/jvm.options
RUN chown 1001:0 /output/resources/security/ltpa.keys
USER 1001

请注意,此模式将复制这些工件的 Docker 层,这可能会严重增加生成的 Docker 镜像大小(取决于工件大小)。因此,建议在复制前或复制过程中设置权限。

标签

此仓库提供多个标签。

kernel-slim 镜像仅包含 Liberty 内核,无额外运行时特性。此镜像是自定义构建镜像的推荐基础,以便它们仅包含特定应用所需的特性。例如,以下 Dockerfile 以此镜像为基础,复制列出应用所需特性的 server.xml,然后使用 features.sh 脚本从在线仓库下载这些特性。

dockerfile
FROM i386/open-liberty:kernel-slim

# 添加服务器配置
COPY --chown=1001:0  server.xml /config/
# 此脚本将添加请求的 XML 片段以启用 Liberty 特性,并使用 featureUtility 使镜像适合特定用途。仅在 'kernel-slim' 中可用。'full' 标签已包含所有特性以方便使用。
RUN features.sh

# 添加应用程序
COPY --chown=1001:0  Sample1.war /config/dropins/
# 此脚本将添加请求的服务器配置,应用任何临时修复并填充缓存以优化运行时。
RUN configure.sh

完整的镜像列表见上文 "支持的标签及相应的 Dockerfile 链接" 部分。

用法

这些镜像旨在支持多种使用模式。以下示例基于 Java EE8 Liberty 应用部署示例,并假设 https://github.com/WASdev/sample.servlet/releases/download/V1/DefaultServletEngine.zip 已提取到 /tmp,且 server.xml 已更新以通过在 server 节中添加以下元素来接受来自容器外部的 HTTP 连接(如果不使用我们标签中的预打包 server.xml 文件):

xml
<httpEndpoint host="*" httpPort="9080" httpsPort="-1"/>

应用镜像

创建扩展 Docker 镜像(我们称之为 应用镜像)以封装应用程序及其配置是非常好的最佳实践。这将创建一个健壮、自包含且可预测的 Docker 镜像,可以根据请求生成新容器,而不依赖于可能随时间变化的卷或其他外部运行时工件。

如果您想构建最小的 Open Liberty 应用镜像,可以从我们的 kernel 标签开始,添加您的工件,并运行 configure.sh 以扩展特性集使其适合特定用途。有关更多详细信息,请参阅我们的 https://github.com/OpenLiberty/ci.docker#building-an-application-image%E3%80%82

启用企业功能

Open Liberty 镜像具有一组内置的 XML 片段,用于启用和配置企业功能,如会话缓存和监控。这些通过应用镜像 Dockerfile 中的特定 ARG 切换,并通过 configure.sh 脚本配置。有关更多信息,请参阅我们 GitHub 页面上的 https://github.com/openliberty/ci.docker#enterprise-functionality%E3%80%82

使用卷进行配置

此模式对于快速实验/早期开发非常有用(即 "我只想在迭代应用程序时运行它"),但不应用于涉及不同团队和环境的开发场景——对于这些情况,上述 "应用镜像" 模式是正确的选择。

使用 卷 时,可以将应用程序文件挂载到此服务器的 dropins 目录中并运行。以下示例在后台启动一个容器,运行主机文件系统中的 .WAR 文件,并将 HTTP 和 HTTPS 端口分别映射到 80 和 $443。

console
$ docker run -d -p 80:9080 -p 443:9443 \
    -v /tmp/DefaultServletEngine/dropins/Sample1.war:/config/dropins/Sample1.war \
    i386/open-liberty:full

服务器启动后,您可以在 Docker 主机上浏览 http://localhost/Sample1/SimpleServlet。

注意:如果您在 OS X 或 Windows 上使用 boot2docker 虚拟机,需要使用 boot2docker ip 命令获取虚拟主机的 IP,而不是使用 localhost。

为了获得更大的配置灵活性,可以从主机挂载整个服务器配置目录,然后将服务器名称指定为运行命令的参数。注意:此特定示例服务器配置仅提供 HTTP 访问。

console
$ docker run -d -p 80:9080 \
  -v /tmp/DefaultServletEngine:/config \
  i386/open-liberty:full

在 Open Liberty 中使用 Spring Boot

full 镜像引入了特定于所有 Liberty 特性支持的功能,包括 Spring Boot 应用程序。因此,此镜像包含用于将 Spring Boot 应用程序分离为瘦应用程序和依赖库缓存的 springBootUtility。要在不包含未使用特性的情况下获得这些功能,请改为基于 kernel 镜像构建,并为您的 server.xml 运行 configure.sh,确保它启用 springBoot-1.5 或 springBoot-2.0 特性。

为详细说明这些功能,本节假设独立的 Spring Boot 2.0.x 应用程序 hellospringboot.jar 存在于 /tmp 目录中。

  1. Spring Boot 应用程序 JAR 部署到默认服务器配置中的 dropins/spring 目录,而不是 dropins 目录。Liberty 允许每个服务器配置一个 Spring Boot 应用程序。您可以通过将应用程序 JAR 添加到 dropins/spring 目录在此镜像上创建 Spring Boot 应用程序层。在此示例中,我们将 hellospringboot.jar 从 /tmp 复制到包含以下 Dockerfile 的同一目录。

    dockerfile
    FROM i386/open-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
    
  2. full 镜像提供库缓存目录 lib.index.cache,其中包含由 springBootUtility 命令创建的索引库缓存。使用 lib.index.cache 为瘦应用程序提供库缓存。

    您可以使用 springBootUtility 命令在 full 镜像上创建瘦应用程序和库缓存层。以下示例使用 Docker 暂存来高效构建镜像,将胖 Spring Boot 应用程序部署为包含瘦应用程序和库缓存的两层。

    dockerfile
    FROM i386/open-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 i386/open-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
    

    对于打包了在持续应用程序更新中很少更改的库依赖项的 Spring Boot 应用程序,您可以使用上述功能在容器之间共享库缓存,并创建更高效的 Docker 层以利用 Docker 构建缓存。

提供您自己的 keystore/truststore

当 open-liberty 镜像启动时,它可以在 /config/configDropins/defaults/keystore.xml 中生成一个 Liberty 服务器 XML 片段,其中指定带有生成密码的 keyStore 节。这会导致 Open Liberty 在启动时生成带有自签名证书的默认 keystore 和 truststore。镜像可以通过设置以下内容来请求此功能:

console
ENV KEYSTORE_REQUIRED "true"

提供自己的 keystore/truststore 时,可以通过添加以下内容禁用此默认行为:

console
ENV KEYSTORE_REQUIRED "false"

即使不生成,也建议将 keystore 自定义放置在 /config/configDropins/defaults/keystore.xml 中,因为这使其更易于查找,并使迁移到 websphere-liberty Docker 镜像更简单。

使用 IBM JRE 类数据共享

IBM JRE 提供 类数据共享 功能,通过使用文件支持的共享内存,在同一主机上运行的多个 Java 虚拟机之间提供透明和动态的数据共享。运行 Liberty Docker 镜像时,它会在 /opt/ol/wlp//output/.classCache 查找文件。要受益于类数据共享,此位置需要通过主机或数据卷容器在容器之间共享。

以上述示例 3 中的应用镜像为例,可以按如下方式共享包含共享缓存的主机文件位置 /tmp/open-liberty/classCache:

console
docker run -d -p 80:9080 -p 443:9443 \
    -v /tmp/open-liberty/classCache:/opt/ol/wlp/output/.classCache app

或者,创建一个命名数据卷容器,在共享文件位置公开卷:

console
docker run -v /opt/ol/wlp//output/.classCache \
    --name classcache i386/open-liberty true

然后,使用从数据卷容器 classcache 挂载的卷运行 Open Liberty 镜像,如下所示:

console
docker run -d -p 80:9080 -p 443:9443 --volumes-from classcache app

以只读模式运行 Open Liberty

Liberty 运行时会写入两个不同的目录:/opt/ol/wlp//output 和 /logs。要以只读模式运行 Liberty 镜像,这些目录可以挂载为临时文件系统。如果使用提供的镜像,keystore 将在初始启动时在服务器配置中生成。这意味着服务器配置目录要么需要是可读写的,要么 keystore 需要内置到镜像中。在示例命令中,/config 挂载为可读写卷。

console
docker run -d -p 80:9080 -p 443:9443 \
    --tmpfs /opt/ol/wlp//output --tmpfs /logs -v /config --read-only \
    i386/open-liberty:webProfile8

Open Liberty 与 WebSphere Liberty 的关系

WebSphere Liberty 是 Open Liberty 的商业发行版。有一个官方的 websphere-liberty Docker 镜像。websphere-liberty Docker 镜像早于 open-liberty,因此为了简化从 open-liberty 迁移到 websphere-liberty(或反之亦然),这些镜像大体上兼容。应该可以通过简单更改 FROM 子句在两者之间切换。在两者之间迁移的一些注意事项:

  • Open Liberty 安装到 /opt/ol 而不是 /opt/ibm。
  • 使用 /config 文件夹访问服务器配置。
  • 使用 /output 文件夹访问服务器输出。
  • 添加自己的 SSL 配置时,使用 /config/configDropins/defaults/keystore.xml。

许可证

查看此镜像中包含的软件的 https://github.com/OpenLiberty/open-liberty/blob/master/LICENSE%E3%80%82

与所有 Docker 镜像一样,这些镜像可能还包含其他软件,这些软件可能受其他许可证(如基础发行版中的 Bash 等,以及包含的主要软件的任何直接或间接依赖项)约束。

一些能够自动检测到的其他许可证信息可能位于 https://github.com/docker-library/repo-info/tree/master/repos/open-liberty 中。

至于任何预构建镜像的使用,镜像用户有责任确保对此镜像的任何使用符合其中包含的所有软件的相关许可证。

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 open-liberty 镜像标签

docker pull docker.xuanyuan.run/i386/open-liberty:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull i386/open-liberty:<标签>

更多 open-liberty 镜像推荐

open-liberty logo

library/open-liberty

Docker 官方镜像
基于Ubuntu的Open Liberty多架构Docker镜像,提供轻量级、模块化的Java应用服务器环境,支持多种Java版本和功能组合,适用于云原生应用开发与部署。
69 次收藏1000万+ 次下载
10 天前更新
openliberty/open-liberty logo

openliberty/open-liberty

openliberty
已终止服务的Open Liberty镜像。请切换至IBM容器注册表(ICR)。
22 次收藏500万+ 次下载
10 个月前更新
s390x/open-liberty logo

s390x/open-liberty

s390x
基于Ubuntu的Open Liberty多架构镜像,提供应用服务器环境,支持运行Java应用并适配多种CPU架构。
50万+ 次下载
10 天前更新
amd64/open-liberty logo

amd64/open-liberty

amd64
基于Ubuntu的Open Liberty多架构镜像,用于运行Java应用并支持多种硬件架构。
50万+ 次下载
10 天前更新
ppc64le/open-liberty logo

ppc64le/open-liberty

ppc64le
基于Ubuntu的多架构Open Liberty镜像,用于运行Java EE和MicroProfile应用,支持多种处理器架构。
50万+ 次下载
10 天前更新
arm64v8/open-liberty logo

arm64v8/open-liberty

arm64v8
基于Ubuntu的Open Liberty多架构镜像,用于运行Java应用程序。
1万+ 次下载
10 天前更新

查看更多 open-liberty 相关镜像

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

Docker 配置

登录仓库拉取

通过 Docker 登录认证访问私有仓库

专属域名拉取

无需登录使用专属域名

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

Harbor 镜像源配置

Harbor Proxy Repository 对接专属域名

Portainer 镜像源配置

Portainer Registries 加速拉取

Nexus 镜像源配置

Nexus3 Docker Proxy 内网缓存

系统配置

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

MacOS OrbStack

MacOS OrbStack 容器配置

Docker Compose

Docker Compose 项目配置

NAS 设备

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

极空间

极空间 NAS 系统配置服务

网络设备

爱快路由

爱快 iKuai 路由系统配置

宝塔面板

在宝塔面板一键配置镜像

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

使用与功能问题

配置了专属域名后,docker search 为什么会报错?

docker search 限制

Docker Hub 上有的镜像,为什么在轩辕镜像网站搜不到?

站内搜不到镜像

机器不能直连外网时,怎么用 docker save / load 迁镜像?

离线 save/load

docker pull 拉插件报错(plugin v1+json)怎么办?

插件要用 plugin install

WSL 里 Docker 拉镜像特别慢,怎么排查和优化?

WSL 拉取慢

轩辕镜像安全吗?如何用 digest 校验镜像没被篡改?

安全与 digest

第一次用轩辕镜像拉 Docker 镜像,要怎么登录和配置?

新手拉取配置

轩辕镜像合规吗?轩辕镜像的合规是怎么做的?

镜像合规机制

轩辕镜像支持 docker push 上传本地镜像吗?

不支持 push

错误码与失败问题

docker pull 提示 manifest unknown 怎么办?

manifest unknown

docker pull 提示 no matching manifest 怎么办?

no matching manifest(架构)

镜像已拉取完成,却提示 invalid tar header 或 failed to register layer 怎么办?

invalid tar header(解压)

Docker pull 时 HTTPS / TLS 证书验证失败怎么办?

TLS 证书失败

Docker pull 时 DNS 解析超时或连不上仓库怎么办?

DNS 超时

docker 无法连接轩辕镜像域名怎么办?

域名连通性排查

Docker 拉取出现 410 Gone 怎么办?

410 Gone 排查

出现 402 或「流量用尽」提示怎么办?

402 与流量用尽

Docker 拉取提示 UNAUTHORIZED(401)怎么办?

401 认证失败

遇到 429 Too Many Requests(请求太频繁)怎么办?

429 限流

docker login 提示 Cannot autolaunch D-Bus,还算登录成功吗?

D-Bus 凭证提示

为什么会出现「单层超过 20GB」或 413,无法加速拉取?

413 与超大单层

账号 / 计费 / 权限

轩辕镜像免费版和专业版有什么区别?

免费版与专业版区别

轩辕镜像支持哪些 Docker 镜像仓库?

支持的镜像仓库

镜像拉取失败还会不会扣流量?

失败是否计费

麒麟 V10 / 统信 UOS 提示 KYSEC 权限不够怎么办?

KYSEC 拦截脚本

如何在轩辕镜像申请开具发票?

申请开票

怎么修改轩辕镜像的网站登录和仓库登录密码?

修改登录密码

如何注销轩辕镜像账户?要注意什么?

注销账户

配置与原理类

写了 registry-mirrors,为什么还是走官方或仍然报错?

mirrors 不生效

怎么用 docker tag 去掉镜像名里的轩辕域名前缀?

去掉域名前缀

如何拉取指定 CPU 架构的镜像(如 ARM64、AMD64)?

指定架构拉取

用轩辕镜像拉镜像时快时慢,常见原因有哪些?

拉取速度原因

为什么拉取镜像的 :latest 标签,拿到的往往不是「最新」镜像?

latest 与「最新」

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
i386/open-liberty
博客Docker 镜像公告与技术博客
热门查看热门 Docker 镜像推荐
安装一键安装 Docker 并配置镜像源
镜像拉取问题咨询请 提交工单。官方公众号:源码跳动。官方技术交流群:51517718。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
镜像拉取问题咨询请提交工单。官方公众号:源码跳动。官方技术交流群:。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.