Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker容器中带有ignite缓存的Spring boot应用程序_Docker_Spring Boot_Ignite - Fatal编程技术网

docker容器中带有ignite缓存的Spring boot应用程序

docker容器中带有ignite缓存的Spring boot应用程序,docker,spring-boot,ignite,Docker,Spring Boot,Ignite,问题摘要:无法访问主机联网容器中运行的spring boot web应用程序 我在我的机器里运行两个容器 ->容器1:ApacheIgnite作为SpringBoot(未启用webserver)应用程序运行,并在服务器模式下启用静态IP地址范围(47100-47109)。 ->容器2:使用ApacheIgnite作为嵌入式客户端模式(具有相同的静态IP地址范围)的示例SpringBootWeb应用程序,尝试连接到容器1中的另一个ignite节点 由于ApacheIgnite节点可以通过静态IP地

问题摘要:无法访问主机联网容器中运行的spring boot web应用程序

我在我的机器里运行两个容器

->容器1:ApacheIgnite作为SpringBoot(未启用webserver)应用程序运行,并在服务器模式下启用静态IP地址范围(47100-47109)。 ->容器2:使用ApacheIgnite作为嵌入式客户端模式(具有相同的静态IP地址范围)的示例SpringBootWeb应用程序,尝试连接到容器1中的另一个ignite节点

由于ApacheIgnite节点可以通过静态IP地址进行发现,因此在启动容器(1和2)时,我设置了选项“主机网络模式”(-net=host)

到目前为止一切都很好:我可以按预期启动容器和缓存集群中的两个容器中的节点。现在的问题是:当我尝试访问容器2中的SpringBootWeb应用程序时,我无法访问默认端口8080中的应用程序。如果作为独立应用程序运行,这个spring boot web应用程序可以访问,但是由于主机网络中的容器,我无法访问端口8080。在这个问题上有谁能解释一下吗

非常感谢!
Naresh

我猜您是在使用Docker来运行您的容器。为了向主机公开端口,应该使用-p参数运行docker容器。类似于docker run-p:image

您在Sprint启动应用程序的日志中看到任何错误吗?可能它无法绑定到端口8080,因为它被另一个应用程序占用?例如,如果启用了
Ignite rest http
模块,Ignite可能会绑定到8080。我可以通过在不使用webserver的情况下启动Ignite应用程序并删除--net=host选项来解决此问题,因为两个容器中的缓存节点可以通过端口47100-47200相互通信