我有一个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
的帖子,但正如我提到的那样,这并没有帮助我。
您知道我在这里可能做错了什么吗?谢谢
答案 0 :(得分:0)
您需要在docker run中删除--link才能访问它。
-link是已弃用的Docker功能,因此在这两个容器之间可能会创建一个docker网络。使您的-p 8081:8081无效。
答案 1 :(得分:0)
如果运行应用程序生产模式,则默认情况下它将使用HTTPS,并且您可能正在使用localhost(HTTP)访问主机。