使用dockerfile构建jdk和tomcat
编写dockerfile文件 (版本跟安装包路径一样的话可以直接粘贴使用)
FROM centos:7 ADD jdk-8u211-linux-x64.tar.gz /usr/local RUN mv /usr/local/jdk1.8.0_211 /usr/local/jdk ENV JAVA_HOME=/usr/local/jdk ENV JRE_HOME=$JAVA_HOME/jre ENV CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH ENV PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH ADD apache-tomcat-8.5.35.tar.gz /usr/local RUN mv /usr/local/apache-tomcat-8.5.35 /usr/local/tomcat EXPOSE 8080 ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]
#重点,查看自己的jdk和tomcat压缩包的位置,一定要把dockerfile和压缩包放一个位置
[root@localhost ~]# ls -l /usr/local/
总用量 2832772
-rw-r--r--. 1 root root 9642757 7月 30 2020 apache-tomcat-8.5.35.tar.gz
drwxr-xr-x. 2 root root 49 12月 9 16:50 bin
drwxr-xr-x. 2 root root 6 12月 9 03:23 etc
drwxr-xr-x. 2 root root 6 11月 5 2016 games
-rw-r--r--. 1 root root 1427128 12月 9 15:13 httpd-2.4.51-3.fc36.x86_64.rpm
drwxr-xr-x. 2 root root 6 11月 5 2016 include
drwxr-xr-x. 7 10 143 245 4月 2 2019 jdk
-rw-r--r--. 1 root root 194990602 7月 30 2020 jdk-8u211-linux-x64.tar.gz
drwxr-xr-x. 2 root root 6 11月 5 2016 lib
drwxr-xr-x. 2 root root 6 11月 5 2016 lib64
drwxr-xr-x. 2 root root 6 11月 5 2016 libexec
-rw-r--r--. 1 root root 2694664264 8月 12 12:03 oracle-database-ee-19c-1.0-1.x86_64.rpm
-rw-r--r--. 1 root root 18204 8月 14 10:21 oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
drwxr-xr-x. 2 root root 6 11月 5 2016 sbin
drwxr-xr-x. 5 root root 49 12月 6 16:49 share
drwxr-xr-x. 2 root root 6 11月 5 2016 src
drwxr-xr-x. 9 root root 220 12月 9 03:45 tomcat
[root@localhost ~]# cd /usr/local/
[root@localhost local]# vi dockerfile
把上面dockerfile文件的内容加进来
[root@localhost local]# docker build -t mycentos:jdk .
Sending build context to Docker daemon 3.323GB
Step 1/11 : FROM centos:7
---> eeb6ee3f44bd
Step 2/11 : ADD jdk-8u211-linux-x64.tar.gz /usr/local
---> 34a906646fe8
Step 3/11 : RUN mv /usr/local/jdk1.8.0_211 /usr/local/jdk
---> Running in ea8248714635
Removing intermediate container ea8248714635
---> c80cfa57cc67
Step 4/11 : ENV JAVA_HOME=/usr/local/jdk
---> Running in fb5e6ccff8df
Removing intermediate container fb5e6ccff8df
---> c1fad11726a4
Step 5/11 : ENV JRE_HOME=$JAVA_HOME/jre
---> Running in 5df52f9f0715
Removing intermediate container 5df52f9f0715
---> 978702c7a064
Step 6/11 : ENV CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
---> Running in b7fcc8b82797
Removing intermediate container b7fcc8b82797
---> 21d3cc37ddc3
Step 7/11 : ENV PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
---> Running in b9d2cdf5ed30
Removing intermediate container b9d2cdf5ed30
---> f5a24a568ea0
Step 8/11 : ADD apache-tomcat-8.5.35.tar.gz /usr/local
---> 3b0a7ef08b56
Step 9/11 : RUN mv /usr/local/apache-tomcat-8.5.35 /usr/local/tomcat
---> Running in 729d136535f3
Removing intermediate container 729d136535f3
---> eadf0b0318e0
Step 10/11 : EXPOSE 8080
---> Running in 5e0514957ba0
Removing intermediate container 5e0514957ba0
---> 4920d5c89e33
Step 11/11 : ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]
---> Running in 3e7761bd4a79
Removing intermediate container 3e7761bd4a79
---> c3514badb52e
Successfully built c3514badb52e
Successfully tagged mycentos:jdk
#使用dockerfile构建要启动防火墙,或者去防火墙配置规则。
[root@localhost local]# firewall-cmd --state
running
#把dockerfile的8080端口映射给80端口,-p(映射)
[root@localhost local]# docker run -itd -p 80:8080 mycentos:jdk /bin/bash
500508f706ac665b2c3afa06a47ec9aa69e1fba945005aa9940b1ec122c6168f
[root@localhost local]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
500508f706ac mycentos:jdk "/usr/local/tomcat/b…" 5 minutes ago Up 5 minutes 0.0.0.0:80->8080/tcp, :::80->8080/tcp jolly_ramanujan
#在user/local下面创建目录ROOT
[root@localhost local]# mkdir ROOT
#在user/local/ROOT下面创建index.html
[root@localhost local]#touch ROOT/index.html
[root@localhost local]#vi ROOT/index.html
hello!
#挂载到/usr/local/ROOT下,因为80端口被占用了所以换成了8080
[root@localhost local]# docker run -itd -p 8080:8080 -v /usr/local/ROOT:/usr/local/tomcat/webapps/ROOT mycentos:jdk /bin/bash
8658f387741a86b814366cf68c1563c10d6157b11772a068257d8fed84c7399a
#访问 可以看到index.html中的内容。