假设你已经安装了docker!java
下载centos最新版镜像到本地。docker pull centos:7web
进入镜像的交互模式:docker run -i -t --name myweb centos:7 /bin/bashdocker
在镜像中安装jdk:yum install java-1.8.0-openjdk.x86_64 -y,能够使用java -version验证apache
在镜像中下载tomcat:wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz
若是没有wget,先使用yum install wget安装一下centos
解压tomcat: tar -xzvf apache-tomcat-8.5.32.tar.gztomcat
移动tomcat路径:cd apache-tomcat-8.5.5,mv * /opt/tomcat/bash
编写java web容器运行脚本,须要编写一个运行脚本,当启动容器时,运行该脚本,启动 Tomcat,好比/root/run.sh做为启动文件,具体过程以下:app
建立脚本:vi /root/run.sh
编辑脚本,将如下内容写进去后保存:
source ~/.bashrc
sh /opt/tomcat/bin/catalina.sh run
为运行脚本添加执行权限: chmod u+x /root/run.sh,退出容器。webapp
提交刚才操做的容器为新的镜像:经过docker ps -a 来查询全部的容器,提交:docker commit 69e8f5dcba1b mine/javaweb:1.0centos7
运行这个新的镜像:docker run -d -p 58080:8080 --name smart mine/javaweb:0.1 /root/run.sh
tomcat启动成功,访问http://192.168.1.100:58080/ 既能够看到tomcat启动页面。
以挂载的方式启动web应用:docker run -d -v /root/webapp/shift.war:/opt/tomcat/webapps/shift.war --privileged=true -p 58080:8080 zhangda/centos7_jdk1.8_tomcat8 /root/run.sh (--privileged=true解决权限问题)
进入容器对话: docker exec -it b36b9710b164 /bin/bash