关于此任务
使用 Docker Hub 中的官方 WebSphere® Application Server for Developers Liberty 映像。
此存储库中提供了多个映像。带有 beta 标记的映像包含每月
Beta 版的安装归档内容。其他映像都基于最新的公开发行修订包。
kernel 映像仅包含
Liberty 内核,而未包含其他运行时功能部件。您可以使用此映像,或是使用仅包含特定应用程序所需功能部件的定制映像。例如,以下
Dockerfile 示例片段以此映像开头,复制
server.xml
文件(其中列出此应用程序所需的功能部件),然后使用
installUtility
命令从在线存储库下载这些功能部件:
FROM websphere-liberty:kernel
COPY server.xml /config/
RUN installUtility install --acceptLicense defaultServer
webProfile6 映像包含实现 Java EE6 Web 概要文件合规性所需的功能部件。另外,它还会引入其他功能部件,以使内容与可通过运行时 JAR 文件下载的功能部件(主要是 OSGi 应用程序所需的功能部件)匹配。
webProfile7 映像包含实现 Java EE7 Web 概要文件合规性所需的功能部件。javaee7
映像扩展此映像,并添加实现 Java EE7 完整平台合规性所需的功能部件。javaee7 映像也带有 latest 标记。
而且,
webProfile6、
webProfile7 和
javaee7 映像均包含一组用于典型生产方案的公共功能部件。这组公共功能部件由下列功能部件构成:
- appSecurity-2.0
- collectiveMember-1.0
- localConnector-1.0
- ldapRegistry-3.0
- monitor-1.0
- requestTiming-1.0
- restConnector-1.0
- sessionDatabase-1.0
- 更新 server.xml 文件,通过在 server 节添加以下元素,接受来自容器外部的 HTTP 连接:
<httpEndpoint host="*" httpPort="9080" httpsPort="-1"/>
- 创建 Eclipse 项目,例如,sample-one-container。在此项目中,包括来自
server.xml 文件的 Dockerfile 和 WAR 文件。 请参阅以下 Dockerfile 示例:
FROM library/websphere-liberty:webProfile7
Add sample-one.war /opt/ibm/wlp/usr/servers/defaultServer/apps
COPY server.xml /opt/ibm/wlp/usr/servers/defaultServer/
ENV LICENSE accept
在此 Dockerfile 中,定制 Liberty 映像,方法如下:将该 WAR 文件复制到
drop-ins 目录,这将安装该应用程序并启动服务器。server.xml
将替换为修改后的 server.xml,以允许来自容器外部的
HTTP 连接。另外,还会接受许可证。
- 收集此项目中的 server.xml 文件和 WAR 文件,并准备运行 Docker 构建以创建 Docker 映像。
- 打开命令行,将当前目录设置为 sample-one-container 项目目录,然后运行 Docker 构建。 这是定制 Docker 构建,它从 Liberty Docker Hub 映像开始,并添加应用程序和相应的
server.xml 配置。请参阅以下示例,它显示一个成功构建的运行过程:
arthurs-mbp:docker-hub arthur$ docker build .
Sending build context to Docker daemon 957.4kB
Step 1/4 : FROM websphere-liberty:kernel
---> 3fd79ff460ff
Step 2/4 : COPY server.xml /config/
---> Using cache
---> a0e43965425f
Step 3/4 : COPY airlines.war /config/apps/
---> Using cache
---> dfc6aee86df5
Step 4/4 : RUN installUtility install --acceptLicense defaultServer
---> Using cache
---> d5ab21decab4
Successfully built d5ab21decab4
arthurs-mbp:docker-hub arthur$
- 使用您的 Docker 用户标识和密码登录。 登录 Docker Hub 时,将显示类似以下示例的输出:
arthurs-mbp:docker-hub arthur$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: arthurdm
Password:
Login Succeeded
arthurs-mbp:docker-hub arthur$
- 构建完成后,为该映像创建标记。 此标记表示在注册表中用于引用此映像的名称。请参阅以下示例:
arthurs-mbp:docker-hub arthur$ docker tag d5ab21decab4 arthurdm/websphere-liberty
- 将该映像推送至 Docker Hub 存储库,使其公开,可供下载和运行。 请参阅以下示例:
arthurs-mbp:docker-hub arthur$ docker push arthurdm/websphere-liberty
The push refers to a repository [docker.io/arthurdm/websphere-liberty]
c2eefa54fcc7: Layer already exists
09fa033b42e3: Layer already exists
753266ce94a2: Layer already exists
0a76debd7d35: Layer already exists
d86dd55017f1: Layer already exists
d5e2acba7cce: Layer already exists
eefb3f013a83: Layer already exists
28fca5e92849: Layer already exists
3e60706b7714: Layer already exists
1a39a1088d6e: Layer already exists
73e5d2de6e3e: Layer already exists
08f405d988e4: Layer already exists
511ddc11cf68: Layer already exists
a1a54d352248: Layer already exists
9d3227c1793b: Layer already exists
latest: digest: sha256:9e41f2a269360fbd0ff926434ab4df38cce49aa83442b1a38eaf13049cb164b2 size: 3453
arthurs-mbp:docker-hub arthur$
下一步做什么
将该应用程序推送至存储库之后,请通过指定 arthurdm/websphere-liberty
映像,在 IBM Cloud Private 环境中安装该应用程序。此安装是通过 Helm 图表完成。