在 在 Docker 中运行 Tomcat 中,我们演示了如何构建一个运行 Tomcat 的 Docker 镜像。本文将演示如何发布 Java Web 应用到该 Tomcat 中。
HelloServlet应用
在本文中,我们使用一个简单的、基于 Servlet 3 的 Java Web 应用, 该应用只需要一个简单的 Servlet 程序(不需要 web.xml 文件),然后将项目打包为 war 格式。
HelloServlet 的源码如下:
1 | package cn.com.hohistar.study.servlet; |
该 Servlet 响应 GET 和 POST 方法,简单的返回当前服务器的 IP 地址。
发布到 Docker 镜像中
将上面的 Java Web 项目打包为: hello-servlet-1.0.war, 然后使用下面的 Dockerfie 构建发布了应用的镜像
1 | FROM tomcat8:1.0 |
因为是基于 在 Docker 中运行 Tomcat 中构建的 tomcat8:1.0 这个镜像来构建的,因此只需要简单的复制 war 文件到 webapps 目录即可。
保存 Dockerfile 以后,可以在 Dockerfie 所在的目录执行:
1 | docker build -t="hello-servlet:1.0" . |
进行构建。构建完成后,可以执行以下命令启动一个容器:
1 | docker run -d --name Hello-Srv -p 8080:8080 hello-servlet:1.0 |
现在, 可以使用浏览器访问:
1 | http://localhost:8080/helo-servlet-1.0 |
查看返回结果了。 注意,返回的是 Docker 虚拟网络的地址