【发布时间】:2020-04-12 00:53:47
【问题描述】:
我在 macOS Catalina 的容器内运行了一个 springboot 应用程序。日志显示应用程序已启动并在容器内运行,但我无法从浏览器访问它。 我尝试过使用:
localhost:8081/ 0.0.0.0:8081/ and 127.0.0.1/8081/
但没有任何帮助。我还在我的 application.properties 文件中添加了server.address=0.0.0.0,但这也没有帮助。
这就是我运行容器的方式:
docker run --name spring_boot_docker -it --link mysql-dev-server:db -p 8081:8081 demo_docker_kubernetes
日志显示应用程序运行良好:
2020-04-12 00:21:40.149 INFO 1 --- [ main]
o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService
'applicationTaskExecutor'
2020-04-12 00:21:40.632 INFO 1 --- [ main]
o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8081 (http) with
context path ''
2020-04-12 00:21:40.637 INFO 1 --- [ main] com.microservice.DemoApplication
: Started DemoApplication in 8.519 seconds (JVM running for 9.391)
2020-04-12 00:21:52.209 INFO 1 --- [nio-8081-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]
: Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-04-12 00:21:52.210 INFO 1 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet
: Initializing Servlet 'dispatcherServlet'
2020-04-12 00:21:52.227 INFO 1 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet
: Completed initialization in 17 ms
当我执行docker container ls 时,我在“端口”下得到以下输出:
0.0.0.0:8081->8081/tcp 是否有帮助?
我参考了几乎所有其他建议在 application.properties 中包含 server.address=0.0.0.0 的帖子,但正如我所提到的,这对我没有帮助。
知道我在这里做错了什么吗?谢谢
【问题讨论】:
-
你能从容器或任何 docker 容器 ping google.com 吗?
-
@Richard - 是的,我可以ping通。
-
8081 是否暴露在您的 dockerfile 中?喜欢
EXPOSE 8081 -
@SMaZ - 是的,它已经暴露了。
-
使用本地主机 IP 发布容器 IP ---->
docker run --name spring_boot_docker -it --link mysql-dev-server:db -p 127.0.0.1:8081:8081/tcp
标签: spring-boot docker