无法访问在MacO上的容器内运行的springboot应用程序

时间:2020-04-12 00:53:47

标签: spring-boot docker

我有一个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的帖子,但正如我提到的那样,这并没有帮助我。

您知道我在这里可能做错了什么吗?谢谢

2 个答案:

答案 0 :(得分:0)

您需要在docker run中删除--link才能访问它。

-link是已弃用的Docker功能,因此在这两个容器之间可能会创建一个docker网络。使您的-p 8081:8081无效。

答案 1 :(得分:0)

如果运行应用程序生产模式,则默认情况下它将使用HTTPS,并且您可能正在使用localhost(HTTP)访问主机。