我在计算机上运行了一个Docker
当我想加入我的码头工人http://127.0.0.1:8888
时,我遇到了错误
为什么错了?
Dockerfile:
FROM tomcat:9-jre8
RUN echo "export JAVA_OPTS=\"-Dapp.env=staging\"" > /usr/local/tomcat/bin/setenv.sh
# Copy to images tomcat path
ADD /target/*.war /usr/local/tomcat/webapps/myProject.war
EXPOSE 8888
CMD ["catalina.sh", "run"]
答案 0 :(得分:6)
Tomcat默认情况下在端口8080上运行http。您应该将映射更改为端口8080
例如
docker run -p 8080:8080 <your image name>
如果您想让tomcat在8080以外的端口上运行,则需要编辑server.xml
并更改端口。我不建议在docker容器中这样做。而是让tomcat在默认端口上运行并更改端口映射。因此,如果您希望该服务在本地计算机的端口8888上公开,则将映射更改为
docker run --publish=8888:8080 -d registry.gitlab.com/myproject/registry:develop
答案 1 :(得分:0)
我刚刚尝试在具有8080端口的docker中运行tomcat-9,并且能够做到这一点。
git clone https://github.com/efsavage/hello-world-war
FROM tomcat:9-jre8
RUN echo "export JAVA_OPTS=\"-Dapp.env=staging\"" > /usr/local/tomcat/bin/setenv.sh
ADD /target/*.war /usr/local/tomcat/webapps/myProject.war
EXPOSE 8080
CMD ["catalina.sh", "run"]
docker build -t tomcat_image .
docker run -p 8080:8080 tomcat_image:latest
希望这会有所帮助!
更新:尝试使用8888端口,它可以正常工作!!。按照@Mohit Mutha的建议,您需要通过将端口映射为8080来运行docker run命令。
docker run -p 8888:8080 tomcat_image:latest