【发布时间】:2017-06-04 05:01:34
【问题描述】:
所以我在 docker swarm 上创建了一个服务:
docker create service --name my-service --network my-network -p 8761:8761 --replicas 1 my-image
这是一个 Spring Boot 应用程序,当查看创建的 docker 容器的标准输出时,会显示以下行:
2017-01-19 12:44:48.588 INFO 6 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8761 (http)
指示应用程序侦听正确的端口。
在运行docker service inspect my-service 时,它还表示已为此服务发布了端口 8761。
当我尝试问题时:curl http://localhost:8761(在 docker swarm master 上,目前是 swarm 中的唯一节点)我遇到了超时。卷曲到任何其他端口会立即导致 Connection Refused 错误。
当直接在机器上启动时,Spring Boot 应用运行良好,日志中没有任何提示,我真的不知道下一步该往哪里看……这里有人知道吗?
【问题讨论】:
-
你应该
curl到经理的ip,而不是localhost。 -
@AlexanderGeorge 谢谢,工作。为什么我从管理器机器本身卷曲时不能使用 localhost?
-
我写了一个正确的答案。
标签: curl docker spring-boot docker-swarm docker-networking