dockerflie构建jdk的tomcat镜像
作者:
Chaweys | 来源:发表于
2021-07-14 23:40 被阅读0次
1、dockerfile内容:
#this is 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
#ENTRYPOINT ["/usr/local/tomcat/bin/startup.sh"]
EXPOSE 8080
ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]
【注】:
(1)、不能使用startup.sh在容器层面启动ENTRYPOINT ["/usr/local/tomcat/bin/startup.sh"],原因是startup.sh脚本是后台启动tomcat程序,这会导致容器直接启动失败。
可换成catalina.sh启动-前台启动(启动日志打印再控制台的方式)。
(2)、要暴露端口,否则宿主机外层无法连接服务
2、启动该tomcat镜像生成一个容器:
docker run -itd -p 8080:8080 -v /data/hudechao/ROOT:/usr/local/tomcat/webapps/ROOT mycentos:jdk /bin/bash
如果启动报错:说明是本地防火墙关闭导致,暂时解决方案,开启防火墙
(iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.17.0.2:8080 ! -i docker0: iptables: No chain/target/match by that name.
-p 8080:8080 端口映射,将容器的8080端口映射给宿主机的8080端口
-v 将宿主机的路径/data/hudechao/ROOT挂载到容器的/usr/local/tomcat/webapps/ROOT路径下,即容器的该路径就可使用宿主机的路径下的磁盘空间和内容
3、举例
/data/hudechao/ROOT路径下创建文件index.html
内容:
hello word~!
4、浏览器访问:http://:localhost:8080
结果:页面显示:hello word~!
本文标题:dockerflie构建jdk的tomcat镜像
本文链接:https://www.haomeiwen.com/subject/blxepltx.html
网友评论