已发布的服务在Docker群集上无法访问
所以我在docker群上创build了一个服务:
docker create service --name my-service --network my-network -p 8761:8761 --replicas 1 my-image
这是一个Spring Boot应用程序,当查看创build的docker容器的标准输出时,显示以下行:
2017-01-19 12:44:48.588 INFO 6 --- [ main] sbcetTomcatEmbeddedServletContainer : Tomcat started on port(s): 8761 (http)
指示应用程序监听正确的端口。 当运行docker service inspect my-service
它也说端口8761是为这项服务发布的。
当我然后尝试问题: curl http://localhost:8761
(在docker群主,现在群中唯一的节点)我跑到超时。 curl到任何其他端口导致立即Connection Refused
错误。
Spring Boot应用程序在机器上直接启动时工作正常,日志中没有任何提示,我真的不知道接下来要看哪里…有人在这里提供线索吗?
您应该curl
到pipe理器的IP ,因为它是您的容器运行的节点。
你提到你的问题,你在容器中运行curl
命令,但我假设你已经做了像eval $("docker-machine env <manager>")
,这将只允许你启动容器经理。 有了这个,你只能select使用的有源docker引擎。
要真正在机器上运行一个命令,你应该ssh进入它 ,然后你可以curl
到本地主机:
docker-machine ssh <manager> -- curl localhost:8761
- 在AWS上的Docker中Spring引导logging系统出现内存泄漏?
- spring引导到mysqldocker通信
- Docker-compose服务开始顺序
- Docker-compose不会为spring启动应用程序生成日志文件
- 处理Spring Boot应用程序退出Web应用程序的代码
- 如何使用Dockerconfiguration使用redis的spring引导web应用程序
- 在Windows上使用maven和spring-boot构buildDocker-Image
- 在Docker中不能链接Consul和Spring Boot应用程序
- GitLab CI:我的testing作业不拾取MySQL容器