首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker Tomcat7容器并不总是正确启动

Docker Tomcat7容器并不总是正确启动
EN

Stack Overflow用户
提问于 2014-05-05 01:41:47
回答 1查看 2.6K关注 0票数 1

我正在用Docker做一些测试,我在启动tomcat7容器时遇到了问题,它有时正确启动,有时不正确。下面是几次尝试的示例

代码语言:javascript
复制
fred@fred-Latitude-E6520:~/docker/test2$ docker.io run  tomcat7
 * Starting Tomcat servlet engine tomcat7
   ...done.
May 04, 2014 5:31:19 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
May 04, 2014 5:31:19 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.52 (Ubuntu)
May 04, 2014 5:31:19 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /var/lib/tomcat7/webapps/ROOT
May 04, 2014 5:31:20 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
May 04, 2014 5:31:20 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 886 ms
fred@fred-Latitude-E6520:~/docker/test2$ docker.io run  tomcat7
 * Starting Tomcat servlet engine tomcat7
   ...fail!
fred@fred-Latitude-E6520:~/docker/test2$ docker.io run  tomcat7
 * Starting Tomcat servlet engine tomcat7
   ...fail!
fred@fred-Latitude-E6520:~/docker/test2$ docker.io run  tomcat7
 * Starting Tomcat servlet engine tomcat7
   ...done.
May 04, 2014 5:32:04 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
May 04, 2014 5:32:04 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.52 (Ubuntu)
May 04, 2014 5:32:04 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /var/lib/tomcat7/webapps/ROOT
May 04, 2014 5:32:05 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
May 04, 2014 5:32:05 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 833 ms

我的Dockerfile:

代码语言:javascript
复制
FROM ubuntu:14.04
# Update Ubuntu
RUN apt-get update && apt-get -y upgrade
# Add oracle java 7 repository
RUN apt-get -y install software-properties-common
RUN add-apt-repository ppa:webupd8team/java
RUN apt-get -y update
# Accept the Oracle Java license
RUN echo "oracle-java7-installer shared/accepted-oracle-license-v1-1 boolean true" | debconf-set-selections
# Install Oracle Java
RUN apt-get -y install oracle-java7-installer
# Install tomcat
RUN apt-get -y install tomcat7
RUN echo "JAVA_HOME=/usr/lib/jvm/java-7-oracle" >> /etc/default/tomcat7
EXPOSE 8080
# Start Tomcat, after starting Tomcat the container will stop. So use a 'trick' to keep it running.
CMD service tomcat7 start && tail -f /var/log/tomcat7/catalina.out

当它失败时,我怎么能看到哪里出了问题呢?

Docker启动是否有超时?如果我的容器没有在x秒内启动,Docker会认为它失败了吗?

EN

回答 1

Stack Overflow用户

发布于 2014-08-05 20:01:19

如果失败,请执行以下操作:

代码语言:javascript
复制
docker logs $(docker -q -a -l)

这将告诉你为什么它失败了。

我认为问题可能是tomcat没有在前台运行,所以您的docker容器结束了,您可能想尝试在supervisor下运行tomcat,并将:

代码语言:javascript
复制
CMD ["supervisord", "-n"]

作为你的命令。

这将告诉supervisor在前台运行,它将为您运行tomcat。你可以通过一个快速的google找到很多tomcat supervisor的例子。这应该很容易做到。

编辑:

或者,使用以下命令在前台运行tomcat

代码语言:javascript
复制
tomcat/bin/catalina.sh run

这应该有相同的影响,所以你的cmd应该是这样的:

代码语言:javascript
复制
CMD ["<path/to/tomcat>/bin/catalina.sh", "run"]

希望这能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23459448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档