Docker运行tomcat错误

当我试图运行这个命令时遇到了一些问题

docker run -d -t -p 203:22 -p 7003:8080 -v /home/test/webapps:/usr/local/tomcat8/webapps/ --name tomcat3 tomcat 

这个命令可以正确执行,但是docker中的tomcat服务器将会像这样停止:

 07-Mar-2017 10:10:24.341 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat8/webapps/examples 07-Mar-2017 10:10:25.011 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat8/webapps/examples has finished in 669 ms 07-Mar-2017 10:10:25.011 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat8/webapps/host-manager 07-Mar-2017 10:10:25.069 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat8/webapps/host-manager has finished in 58 ms 07-Mar-2017 10:10:25.069 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat8/webapps/docs 07-Mar-2017 10:10:25.116 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat8/webapps/docs has finished in 47 ms 07-Mar-2017 10:10:25.117 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat8/webapps/ROOT 07-Mar-2017 10:10:25.147 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat8/webapps/ROOT has finished in 30 ms 07-Mar-2017 10:10:25.159 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 07-Mar-2017 10:10:25.171 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"] 07-Mar-2017 10:10:25.171 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 1757 ms 07-Mar-2017 10:11:31.418 INFO [main] org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutdown port. Stopping the Server instance. 07-Mar-2017 10:11:31.420 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"] 07-Mar-2017 10:11:31.425 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8009"] 07-Mar-2017 10:11:31.426 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service Catalina 07-Mar-2017 10:11:31.495 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"] 07-Mar-2017 10:11:31.499 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-nio-8009"] 07-Mar-2017 10:11:31.499 INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"] 07-Mar-2017 10:11:31.500 INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-nio-8009"] 

但是,下面的命令并不是这种情况。

 docker run -d -t -p 201:22 -p 7001:8080 --name tomcat1 tomcat 

这个命令将执行完全正确。他们之间的唯一区别是我的意见-v标志。这里是我的Dockerfile和supervisordconfiguration

 [supervisord] nodaemon=true [program:tomcat] command=/usr/local/tomcat8/bin/catalina.sh run environment=JAVA_HOME="/usr/local/java/jdk8/",JAVA_BIN="/usr/local/java/jdk8/bin" autostart = true autorestart=true [program:sshd] command=/usr/sbin/sshd -D #Dockerfile FROM tomcat EXPOSE 22 8080 CMD ["/usr/bin/supervisord"]