我正在试验Docker,并且对它很新颖。我很长一段时间,并没有得到解决方法,因此在这里想出了这个问题...Apache Tomcat 8不在码头集装箱内启动
问题声明: 我想从包含Apache的docker文件创建一个图像,山猫安装。一旦完成,我试图访问容器的8080上的tomcat,然后将该容器转发给主机的8082。但是在运行映像时,我从来没有在容器中启动tomcat。
的泊坞文件
FROM ubuntu:16.10
#Install Lynx
Run apt-get update
Run apt-get install -y lynx
#Install Curl
Run apt-get install -y curl
#Install tools: jdk
Run apt-get update
Run apt-get install -y openjdk-8-jdk wget
#Install apache tomcat
Run groupadd tomcat
Run useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Run cd /tmp
Run curl -O http://apache.mirrors.ionfish.org/tomcat/tomcat- 8/v8.5.12/bin/apache-tomcat-8.5.12.tar.gz
Run mkdir /opt/tomcat
Run tar xzvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1
Run cd /opt/tomcat
Run chgrp -R tomcat /opt/tomcat
Run chmod -R g+r /opt/tomcat/conf
Run chmod g+x /opt/tomcat/conf
Run chown -R tomcat /opt/tomcat/webapps /opt/tomcat/work /opt/tomcat/temp opt/tomcat/logs
Run cd /opt/tomcat/bin
Expose 8080
CMD /opt/tomcat/bin/catalina.sh run && tail -f /opt/tomcat/logs/catalina.out
当图像被内置我试图通过两个以下方法
搬运工运行运行容器-d -p 8082:8080图像标识尾-f/dev/null 虽然使用上述内容,但容器正在运行,但tomcat未在容器内启动,因此无法从localhost:8082访问。此外,我没有看到任何东西,如果我执行搬运工人日志longcontainerid
搬运工运行-d -p 8082:8080图像标识/path/to/catalina.sh开始尾-f /开发/空 我看到tomcat的开始时,我做码头日志longconatainrid 虽然使用上面的容器是立即启动和停止,并没有运行,因为我可以从docker ps看到,因此不能从localhost:8082访问。
任何人都可以请告诉我我要去哪里吗?
P.s.我在互联网上搜索了很多东西,但无法正确处理。可能是有一些概念,我不清楚。
为什么不使用https://hub.docker.com/_/tomcat/中的参考Tomcat?顺便说一下(这不是你的问题),你应该在你的Dockerfile中将你的RUN分组,请参阅https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/ – user2915097