示例:把一个简单的 Java Web 应用---MyBank 进行容器化。git
它包含了 Java 源代码、JSP文件、图片和 CSS 等静态资源文件。github
MyBank 的项目结构是基于 Maven 的要求部署,经过 Maven 能够编译和构建 MyBank 的部署包---WAR包。web
和其它的应用程序同样,MyBank 在开发过程当中,它的因此在源代码都被上传到配置管理库进行版本控制,这里所使用的配置管理服务器是 GitHub。docker
1. 安装部署源代码工具 Git.浏览器
# yum -y install git
2.从 GitHub 上下载示例的 Java 应用源代码。tomcat
[root@master ~]# cd /opt/ [root@master opt]# git clone https://github.com/nichochen/mybank-demo-maven
3.准备编译和构建环境。安装应用构建所需的Java开发工具包 JDK 及构建工具 Mavenbash
# yum -y install maven
4.经过构建工具编译及构建应用。服务器
# cd mybank-demo-maven/ [root@master mybank-demo-maven]# mvn package
构建完毕,将在 target 目录下生成一个 WAR 包 ROOT.war.app
# ls target/ classes maven-archiver ROOT ROOT.war surefire surefire-reports test-classes
5.选择知足应用运行要求的基础容器镜像,或者从基础的操做系统镜像开始安装和构建。webapp
# docker pull tomcat:7.0.70-jre7-alpine
6.编写 Dockerfile 。把构建好的应用部署包拷贝到发布目录。Dockerfile示例以下:
# cat Dockerfile FROM tomcat:7.0.70-jre7-alpine ADD ./target/ROOT.war /usr/local/tomcat/webapps/mybank.war
7.执行 Docker Build 构建镜像。把镜像命命为 mybank-tomcat。在没有指定镜像的 tag 的请求下,默认的标签为 latest。
# docker build -t mybank-tomcatbank-tomcat .
构建完后,能够看见 Docker Build 生成的新镜像
# docker images | grep mybank-tomcat mybank-tomcat latest 0a46e831b130 2 days ago 150 MB
8.测试镜像。经过 docker run 命令测试新建立的镜像。参数 -p 8080:8080 把容器的 8080端口映射到主机的 8080端口。
# docker run -it --rm -p 8080:8080 mybank-tomcat
完成后经过浏览器访问 MyBank 的主页测试。
# oc get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-openshift ClusterIP 172.30.242.25 <none> 8080/TCP,8888/TCP 3d
9.推送镜像。测试经过后,将把镜像发布到相应的镜像仓库中。
# docker tag mybank-tomcat:latest 192.168.100.133:5000/mybank-tomcat:latest # docker push 192.168.100.133:5000/mybank-tomcat:latest