Docker镜像运行但Chrome中没有内容

7

我在我的机器上运行了一个Docker

enter image description here

当我想访问我的Docker http://127.0.0.1:8888 时,出现错误 enter image description here 为什么会出错? 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"]

1
在您的屏幕截图中还提到了端口8080,您尝试过吗? - Myonara
@Myonara 是的,我尝试了这个端口,但是没有任何反应。 - Aaron Guilbot
尝试将“ADD”替换为“COPY”。如果您能将容器日志包含在OP中,那就太好了。docker logs containerId - leopal
@BenLewisWatson 我修改了/conf/server.xml文件中的<Connector port="8888" protocol="HTTP/1.1"[...]这一行,但是错误始终如一。 - Aaron Guilbot
1
我从你的截图中看到8080也被暴露了。你可以尝试将映射更改为--publish 8080:8080,然后尝试访问http://localhost:8080。我认为你会得到你想要的结果。 - Mohit Mutha
显示剩余5条评论
2个回答

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

0

我刚刚尝试在Docker中使用8080端口运行tomcat-9,并成功实现了。

  1. 我克隆了一个包含示例hello-world程序的git-hub链接。

git clone https://github.com/efsavage/hello-world-war

  1. 创建了包含上述条目的Docker文件。只是将端口暴露为8080(Tomcat默认端口)。
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"]


3. 构建Docker镜像。
docker build -t tomcat_image .
  1. 运行 Docker 镜像
docker run -p 8080:8080 tomcat_image:latest
  1. 在网页浏览器中访问 "http://127.0.0.1:8080/",我使用的是谷歌浏览器。哇!它起作用了。请查看下面的截图。

enter image description here

希望这可以帮到你!更新:尝试使用8888端口,它可以工作!如@Mohit Mutha所建议的那样,您需要通过将端口映射到8080来运行docker run命令。
docker run -p 8888:8080 tomcat_image:latest

附上新的截图。 在此输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接