Dockerfile文件部署tomcat8.5
1.安装docker并下载centos镜像
[root@test ~]# yum -y install docker
[root@test ~]# docker pull centos
[root@test ~]# docker images
2. 再寄主机上面安装tomcat
[root@test ~]# mkdir oo
[root@test ~]# cd oo
[root@test oo]# tar -zxvf apache-tomcat-8.5.53.tar.gz
[root@test oo]# mv apache-tomcat-8.5.53 tomcat (可以将自己的项目更换到webapps下,如ROOT.war包)
3.创建Dockerfile文件
[root@test oo]# vim Dockerfile
FROM centos:latest //初始centos镜像
RUN yum -y install java-1.8.0-openjdk //运行下载命令,这里使用的是openjdk,也可以执行安装jdk以ADD的方式拷进容器内,注意配置变量
ADD ./tomcat /home/tomcat //拷贝寄主主机tomcat目录到容器的/home/下
WORKDIR /home/tomcat/ //工作目录
MAINTAINER bathing<bathing@163.com> //创建人信息,可以不写
ENV JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.275.b01-0.el7_9.x86_64 //设置java变量,注意我这里使用的是openjdk,以自己安装的jdk目录为准
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
ENV JAVA_OPTS="-server -Xms512m -Xmx512m -XX:NewRatio=4 -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -Djava.security.egd=file:/dev/./urandom -XX:+UseG1GC -XX:G1HeapRegionSize=2m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=1000 -XX:SurvivorRatio=8 -XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePolicy -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m -verbose:gc -Xloggc:/home/tomcat/java_gc%t.log" //对tomcat简单jvm和gc调优
EXPOSE 9081 //容器开放端口
EXPOSE 8080
CMD /home/tomcat/bin/catalina.sh run //以tomcat自带的catalina.sh方式运行,以startup.sh方式启动参考 https://www.cnblogs.com/Bathing/p/14242516.html
4. 构建tomcat:v1的容器
[root@test oo]# docker build -t tomcat:v1 .
[root@test oo]# docker images
5. 启动tomcat:v1容器,并映射8080端口和9081端口
[root@test oo]# docker run -itd -p 8080:8080 -p 9081:9081 --restart=always tomcat:v1
[root@test oo]# docker ps