amd64/websphere-liberty注意: 这是websphere-liberty官方镜像的amd64架构构建的"per-architecture"仓库——更多信息,请参见官方镜像文档中的"除amd64外的架构?"和官方镜像FAQ中的"Git中的镜像源已更改,现在该怎么办?"。
维护者:
IBM WASdev社区
获取帮助:
WASdev社区
Dockerfile链接kernel, kernel-java8-ibmjava
kernel-java11-openj9
kernel-java17-openj9
full, latest, full-java8-ibmjava
full-java11-openj9
full-java17-openj9
25.0.0.6-kernel-java8-ibmjava
25.0.0.6-kernel-java11-openj9
25.0.0.6-kernel-java17-openj9
25.0.0.6-full-java8-ibmjava
25.0.0.6-full-java11-openj9
25.0.0.6-full-java17-openj9
25.0.0.9-kernel-java8-ibmjava
25.0.0.9-kernel-java11-openj9
25.0.0.9-kernel-java17-openj9
25.0.0.9-full-java8-ibmjava
25.0.0.9-full-java11-openj9
25.0.0.9-full-java17-openj9
25.0.0.10-kernel-java8-ibmjava
25.0.0.10-kernel-java11-openj9
25.0.0.10-kernel-java17-openj9
25.0.0.10-full-java8-ibmjava
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仓库。
此镜像默认以 USER 1001(非root)身份运行,属于组 0。请确保阅读以下内容以设置适当的文件夹和文件权限。
WebSphere Liberty访问的所有文件夹均已设置适当的权限,但如果您的扩展Dockerfile需要访问其他位置的权限,只需临时切换到root用户并提供所需权限,例如:
dockerfileUSER 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 可被组 0 读取和执行,以及应用的 EAR 或 WAR 文件、JDBC驱动程序或其他通过 COPY 或 ADD 放置到镜像中的文件。
如果您使用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用户以更改所需文件的权限。例如:
dockerfileUSER root RUN chown 1001:0 /config/jvm.options RUN chown 1001:0 /output/resources/security/ltpa.keys USER 1001
请注意,此模式会复制这些工件的docker层,这可能会严重膨胀生成的docker镜像(取决于工件的大小)。因此,建议在复制前或复制时设置权限。
本仓库提供多个标签。带有 beta 标签的镜像包含最新月度beta版安装归档的内容。其他镜像均基于最新的正式版修复包。
kernel 镜像仅包含Liberty内核,不包含其他运行时功能。此镜像是构建自定义镜像的推荐基础,以便它们仅包含特定应用所需的功能。例如,以下Dockerfile以此镜像为基础,复制列出应用所需功能的 server.xml,然后使用 configure.sh 脚本从在线仓库下载这些功能。
dockerfileFROM amd64/websphere-liberty:kernel COPY --chown=1001:0 Sample1.war /config/dropins/ COPY --chown=1001:0 server.xml /config/ RUN configure.sh
这些镜像旨在支持多种使用模式。以下示例基于Java EE8 Liberty 应用部署示例,并假设 DefaultServletEngine.zip 已提取到 /tmp,且 server.xml 已通过在 server 节中添加以下元素(如果未使用我们标签中的预打包 server.xml 文件)更新为接受来自容器外部的HTTP连接:
xml<httpEndpoint host="*" httpPort="9080" httpsPort="-1"/>
创建扩展Docker镜像(我们称之为“应用镜像”)以封装应用及其配置是非常好的最佳实践,这会创建一个健壮、自包含且可预测的Docker镜像,可根据请求生成新容器,而无需依赖可能随时间变化的卷或其他外部运行时工件。
如果要构建最小的WebSphere Liberty应用镜像,可以从我们的 kernel 标签开始,添加您的工件,然后运行 configure.sh 以扩展功能集以满足特定需求。有关更多详细信息,请参见我们的 GitHub页面。
WebSphere Liberty镜像包含一组内置XML片段,用于启用和配置企业功能,如会话缓存和监控。这些通过应用镜像Dockerfile中的特定 ARG 切换,并通过 configure.sh 脚本配置。有关更多信息,请参见我们GitHub页面上的 说明。
此模式对于快速实验/早期开发非常有用(即“我只想在迭代应用时运行它”),但不应用于涉及不同团队和环境的开发场景——对于这些情况,上述“应用镜像”模式是正确的选择。
使用 volumes 时,可以将应用文件挂载到此服务器的 dropins 目录中并运行。以下示例在后台启动一个容器,运行主机文件系统中的.WAR文件,并将HTTP和HTTPS端口分别映射到80和443。
console$ docker run -d -p 80:9080 -p 443

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务