docker - 为什么docker容器启动成功时tomcat没有启动?
问题描述
tomcate 和 jdk 从他们的官方网站下载
以下是我的 Dockerfile:
FROM centos
MAINTAINER jachen<1862457@qq.com>
COPY readme.txt /usr/local/readme.txt
ADD jdk-8u261-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.22.tar.gz /usr/local/
#RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_261
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.22
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.22
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD ["/usr/local/apache-tomcat-9.0.22/bin/catalina.sh" "run"]
构建命令:
docker build -t diytomcat3:0.3 .
启动命令:
docker run -it -d diytomcat3:0.3 /bin/bash
然后进入码头:
[root@localhost ~]# docker exec -it cb4aebe4a834 /bin/bash
[root@cb4aebe4a834 local]# pwd
/usr/local
[root@cb4aebe4a834 local]# curl localhost:8080
curl: (7) Failed to connect to localhost port 8080: Connection refused
[root@cb4aebe4a834 local]#
这意味着 tomcat luanch 失败了。
但是当运行 catalina.sh 时,tomcat 可以启动成功:
[root@cb4aebe4a834 local]# catalina.sh run
Using CATALINA_BASE: /usr/local/apache-tomcat-9.0.22
Using CATALINA_HOME: /usr/local/apache-tomcat-9.0.22
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-9.0.22/temp
Using JRE_HOME: /usr/local/jdk1.8.0_261
Using CLASSPATH: /usr/local/apache-tomcat-9.0.22/bin/bootstrap.jar:/usr/local/apache-tomcat-9.0.22/bin/tomcat-juli.jar
24-Aug-2020 13:41:10.011 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.22
.....
24-Aug-2020 13:41:12.668 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
24-Aug-2020 13:41:12.676 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [1,625] milliseconds
我试图获取一些日志,但一无所获:
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cb4aebe4a834 diytomcat3:0.3 "/bin/bash" 9 minutes ago Up 9 minutes 8080/tcp happy_thompson
[root@localhost ~]# docker logs cb4aebe4a834
[root@localhost ~]#
解决方案
推荐阅读
- python - 在 Screen 类中使用 .add_widget 时出现 Kivymd 问题(想要动态添加按钮)
- python - 如何从熊猫中的多个日期获取数据聚合?
- python - 对一组特定参数使用 SymPy 符号积分时出错
- python - 如何绘制不同训练样本的置信区间
- javascript - 从模板中的 django for 循环中选择字段的值并通过 ajax 将选定的字段值传递给服务器端 django
- flutter - 颤振真棒通知
- javascript - 如何根据 API 中的数据动态构建组件?
- ruby - 在 nokogiri 中获取标签的实例编号
- docker - AWS Lambda CodeDeploy 使用 ECR 图像作为源
- sql - 通过基于字段的 ORDER 对 SQL 中的多个组进行排名