当前位置: 首页 > 知识库问答 >
问题:

访问容器外部的Tomcat调试端口

吴均
2023-03-14

我有一个在tomcat服务器上运行java后端的容器。我想对其进行配置,以便可以附加eclipse来调试代码。有很多文档,但有这么多不同和矛盾的答案,我找不到一个方法来做。

这是我当前的配置:

DockerFile:

From tomcat:9.0-jdk8-openjdk
   
ADD ./application.war /usr/local/tomcat/webapps/
ADD tomcat-users.xml /usr/local/tomcat/conf/tomcat-users.xml
ADD server.xml /usr/local/tomcat/conf/server.xml
EXPOSE 9090
CMD ["catalina.sh","run"]

以及运行docker的命令:

docker run-d-p 9090:8080 myApp

我应该添加什么以使我的应用程序可以被远程调试访问?

共有1个答案

秦才
2023-03-14

我找到的解决方案是:DockerFile

From tomcat:9.0-jdk8-openjdk
   
ADD ./application.war /usr/local/tomcat/webapps/
ADD tomcat-users.xml /usr/local/tomcat/conf/tomcat-users.xml
ADD server.xml /usr/local/tomcat/conf/server.xml
EXPOSE 9090
EXPOSE 9000
ENV JPDA_ADDRESS=8000
ENV JPDA_TRANSPORT=dt_socket

CMD ["catalina.sh", "jpda", "run"]

然后:docker run-d-p9090:8080-p9000:8000 myApp

警告:这使得应用程序只能从运行docker的服务器调试(在localhost:9000在该示例中)!我读到与*:JPDA_ADDRESS有关的东西,但我无法使其工作。

 类似资料:
  • 外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。 当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。 使用 docker container ls 可以看到,本地主机的 49155 被映射到了容器的 5000 端口。此时访问本机的 49155 端口即可访问容器内 web 应

  • 问题内容: 我想阻止从外部直接访问docker容器。我使用haproxy,并且只希望访问端口80、443。 我在iptables中添加了以下规则。但是我仍然可以通过不同的端口访问Docker容器。 这可能是由于DOCKER链 我需要创建什么规则来阻止直接访问? 问题答案: 您可以使用命令创建一个网络来连接应用程序和代理,而不必使用IP表来执行此操作。另外,请勿在任何端口上公开应用程序。您应该公开的

  • tl;如果在Docker容器中运行,一个RestController正确回答,另一个则不正确。 该服务有两个API 和。 它们都是通过docker compose运行的。 返回。 返回一个空的200响应。正如预期的那样。 应该返回一个200响应和一个每次调用API时都会增加的数字。可悲的是,事实并非如此。 在本地运行该服务可以提供预期的结果。 maven spotify插件用于从以下创建图像。 我

  • 我需要远程调试我的应用程序,但由于以下错误,我无法这样做: 我有: null 下面是iptables的输出: 如何用8000端口修复此问题?或者也许我的主要问题还有其他原因?

  • 我有docker容器用于实验。所以我不知道以后尝试新应用时会使用哪些端口。在docker-run命令中使用ip/port从主机访问docker容器应用程序而不公开它,这是不可能的吗?

  • 本文向大家介绍SpringBoot应用部署于外置Tomcat容器的方法,包括了SpringBoot应用部署于外置Tomcat容器的方法的使用技巧和注意事项,需要的朋友参考一下 0x01. 概述 SpringBoot平时我们用的爽歪歪,爽到它自己连Tomcat都自集成了,我们可以直接编写SBT启动类,然后一键开启内置的Tomcat容器服务,确实是很好上手。但考虑到实际的情形中,我们的Tomcat服务