首先,服务器准备好jdk和tomcat
接着,编写dockerfile
#以centos作为基础镜像
FROM docker.io/centos
#维护者信息
MAINTAINER michard michard@qq.com
#切换目录到/usr
WORKDIR /usr
#创建JDK路径
RUN mkdir java
#创建tomcat路径
RUN mkdir tomcat
#将宿主主机的jdk复制到镜像里
ADD jdk /usr/java/
#将宿主主机的tomcat复制到镜像里
ADD tomcat8 /usr/tomcat/
#定义环境变量
ENV JAVA_HOME=/usr/java/
ENV JRE_HOME=$JAVA_HOME/jre/
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV path=/sbin:$JAVA_HOME/bin:$PATH
#向外暴露8080端口
EXPOSE 8080
#启动tomcat
ENTRYPOINT ["/usr/tomcat/bin/catalina.sh","run"]
第三步,进行dockerfile构建
[root@iZm5e3euwwjtgvn8yh8gb0Z home]# docker build -f tomcat_dockerfile -t tomcat8:1.8 .
Sending build context to Docker daemon 358 MB
Step 1/13 : FROM docker.io/centos
---> 300e315adb2f
Step 2/13 : MAINTAINER michard michard@qq.com
---> Using cache
---> 78dd1389d465
Step 3/13 : WORKDIR /usr
---> Using cache
---> ba7639cd6050
Step 4/13 : RUN mkdir java
---> Using cache
---> adc10b0cf035
Step 5/13 : RUN mkdir tomcat
---> Using cache
---> 99f1b232c5e9
Step 6/13 : ADD jdk /usr/java/
---> 04898a7db455
Removing intermediate container 7a0e398504b1
Step 7/13 : ADD tomcat8 /usr/tomcat/
---> c2b25ab1abdd
Removing intermediate container c1c2989d84ad
Step 8/13 : ENV JAVA_HOME /usr/java/
---> Running in 6111da0131f0
---> 4963c62383be
Removing intermediate container 6111da0131f0
Step 9/13 : ENV JRE_HOME $JAVA_HOME/jre/
---> Running in 1faf0ba20f26
---> f0c99dda1c77
Removing intermediate container 1faf0ba20f26
Step 10/13 : ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
---> Running in 619266cfb87e
---> 07013ccfb186
Removing intermediate container 619266cfb87e
Step 11/13 : ENV path /sbin:$JAVA_HOME/bin:$PATH
---> Running in 0fab71579dc8
---> e5859280d2c0
Removing intermediate container 0fab71579dc8
Step 12/13 : EXPOSE 8080
---> Running in 982040669c85
---> f2495a2dfdd2
Removing intermediate container 982040669c85
Step 13/13 : ENTRYPOINT /usr/tomcat/bin/catalina.sh run
---> Running in 8ac42bb20646
---> 7dcb0d5ce8f3
Removing intermediate container 8ac42bb20646
Successfully built 7dcb0d5ce8f3
=============================================
构建成功,查看镜像
第四步,创建容器
访问8380
到此,dockerfile构建tomcat容器就完成了。
在我们的实际应用中,都是多容器部署,结合jenkins和git,提交代码,进行容器化部署更新。
之前我们也有讲过jenkins+docker+maven+git,(https://blog.youkuaiyun.com/u012373281/article/details/113062908)进行自动化部署。
我们在基于这个镜像,创建一个新的容器,启动时间也是毫秒级。