假设你已经安装了docker!
-
下载centos最新版镜像到本地。docker pull centos:7
-
进入镜像的交互模式:docker run -i -t --name myweb centos:7 /bin/bash
-
在镜像中安装jdk:yum install java-1.8.0-openjdk.x86_64 -y,可以使用java -version验证
-
在镜像中下载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安装一下 -
解压tomcat: tar -xzvf apache-tomcat-8.5.32.tar.gz
-
移动tomcat路径:cd apache-tomcat-8.5.5,mv * /opt/tomcat/
-
编写java web容器运行脚本,需要编写一个运行脚本,当启动容器时,运行该脚本,启动 Tomcat,比如/root/run.sh作为启动文件,具体过程如下:
创建脚本:vi /root/run.sh
编辑脚本,将以下内容写进去后保存:
source ~/.bashrc
sh /opt/tomcat/bin/catalina.sh run
为运行脚本添加执行权限: chmod u+x /root/run.sh,退出容器。 -
提交刚才操作的容器为新的镜像:通过docker ps -a 来查询所有的容器,提交:docker commit 69e8f5dcba1b mine/javaweb:1.0
-
运行这个新的镜像: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