【问题标题】:Docker-compose refuses to connect to localhostDocker-compose 拒绝连接到 localhost
【发布时间】:2020-03-13 11:20:55
【问题描述】:

我的 dockerized webapp 有问题。基本上我有一个 docker-compose yaml 文件,当文件运行时,一切似乎都顺利启动。我可以看到容器正在使用 docker ps 运行。我可以看到它正在侦听正确的端口,但是当我尝试通过浏览器连接时,它拒绝连接。

我的 yaml 文件

version: '3'
services:
  product-search-service:
    build: ./product-search-app
    ports:
      - 8000:5000
  product-shipping-service:
    build: ./product-shipping-app
    ports:
      - 9000:5000
  website-app:
    build: ./web-app
    ports:
      - 127.0.0.1:8080:80
    volumes:
      - ./web-app/public-html:/usr/local/apache2/htdocs/ 

我正在通过网络浏览器连接到 127.0.0.1:8080

控制台日志

Starting webstore-services_product-shipping-service_1 ... done                                                                                               Recreating webstore-services_website-app_1            ... done                                                                                               Starting webstore-services_product-search-service_1   ... done                                                                                               Attaching to webstore-services_product-shipping-service_1, webstore-services_product-search-service_1, webstore-services_website-app_1
website-app_1               | AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.18.0.4. Set the 'ServerName' directive globally to suppress this message
website-app_1               | AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.18.0.4. Set the 'ServerName' directive globally to suppress this message
website-app_1               | [Fri Mar 13 11:09:16.255235 2020] [mpm_event:notice] [pid 1:tid 140304540900680] AH00489: Apache/2.4.41 (Unix) configured -- resuming normal operations
product-search-service_1    |
product-search-service_1    |   .   ____          _            __ _ _
product-search-service_1    |  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
product-search-service_1    | ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
product-search-service_1    |  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
product-search-service_1    |   '  |____| .__|_| |_|_| |_\__, | / / / /
product-search-service_1    |  =========|_|==============|___/=/_/_/_/
product-search-service_1    |  :: Spring Boot ::        (v2.0.5.RELEASE)
product-shipping-service_1  |
product-shipping-service_1  |   .   ____          _            __ _ _
product-shipping-service_1  |  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
product-shipping-service_1  | ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
product-shipping-service_1  |  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
product-shipping-service_1  |   '  |____| .__|_| |_|_| |_\__, | / / / /
product-shipping-service_1  |  =========|_|==============|___/=/_/_/_/
product-shipping-service_1  |  :: Spring Boot ::        (v2.0.5.RELEASE)
product-search-service_1    |
product-search-service_1    | 2020-03-13 11:09:25.557  INFO 1 --- [           main] product.App                              : Starting App v0.1.0 on 82a04050f513 with PID 1 (/app/product-search-service-0.1.0.jar started by root in /app)
product-shipping-service_1  |
product-shipping-service_1  | 2020-03-13 11:09:25.743  INFO 1 --- [           main] shipping.App                             : Starting App v0.1.0 on 21735f5ffb12 with PID 1 (/app/product-shipping-service-0.1.0.jar started by root in /app)
product-search-service_1    | 2020-03-13 11:09:25.607  INFO 1 --- [           main] product.App                              : No active profile set, falling back to default profiles: default
product-shipping-service_1  | 2020-03-13 11:09:25.800  INFO 1 --- [           main] shipping.App                             : No active profile set, falling back to default profiles: default
product-search-service_1    | 2020-03-13 11:09:26.461  INFO 1 --- [           main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@3339ad8e: startup date [Fri Mar 13 11:09:26 GMT 2020]; root of context hierarchy
product-shipping-service_1  | 2020-03-13 11:09:26.606  INFO 1 --- [           main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@3c679bde: startup date [Fri Mar 13 11:09:26 GMT 2020]; root of context hierarchy
product-search-service_1    | 2020-03-13 11:09:41.208  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 5000 (http)
product-search-service_1    | 2020-03-13 11:09:41.583  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
product-search-service_1    | 2020-03-13 11:09:41.584  INFO 1 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.34
product-shipping-service_1  | 2020-03-13 11:09:41.540  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 5000 (http)
product-shipping-service_1  | 2020-03-13 11:09:41.914  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
product-shipping-service_1  | 2020-03-13 11:09:41.923  INFO 1 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.34
product-search-service_1    | 2020-03-13 11:09:41.708  INFO 1 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64:/usr/lib/jvm/java-1.8-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
product-search-service_1    | 2020-03-13 11:09:42.613  INFO 1 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
product-shipping-service_1  | 2020-03-13 11:09:42.043  INFO 1 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64:/usr/lib/jvm/java-1.8-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
product-shipping-service_1  | 2020-03-13 11:09:42.873  INFO 1 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
product-search-service_1    | 2020-03-13 11:09:42.615  INFO 1 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 16228 ms
product-search-service_1    | 2020-03-13 11:09:43.319  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Servlet dispatcherServlet mapped to [/]
product-search-service_1    | 2020-03-13 11:09:43.355  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
product-search-service_1    | 2020-03-13 11:09:43.364  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
product-search-service_1    | 2020-03-13 11:09:43.370  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
product-shipping-service_1  | 2020-03-13 11:09:42.874  INFO 1 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 16315 ms
product-shipping-service_1  | 2020-03-13 11:09:43.471  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Servlet dispatcherServlet mapped to [/]
product-shipping-service_1  | 2020-03-13 11:09:43.505  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
product-shipping-service_1  | 2020-03-13 11:09:43.508  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
product-shipping-service_1  | 2020-03-13 11:09:43.517  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
product-search-service_1    | 2020-03-13 11:09:43.371  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
product-shipping-service_1  | 2020-03-13 11:09:43.521  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
product-search-service_1    | 2020-03-13 11:09:44.733  INFO 1 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
product-shipping-service_1  | 2020-03-13 11:09:44.846  INFO 1 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
product-search-service_1    | 2020-03-13 11:09:46.595  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@3339ad8e: startup date [Fri Mar 13 11:09:26 GMT 2020]; root of context hierarchy
product-shipping-service_1  | 2020-03-13 11:09:46.656  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@3c679bde: startup date [Fri Mar 13 11:09:26 GMT 2020]; root of context hierarchy
product-search-service_1    | 2020-03-13 11:09:47.356  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/product]}" onto public product.Product product.ProductController.product(java.lang.String)
product-search-service_1    | 2020-03-13 11:09:47.448  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
product-shipping-service_1  | 2020-03-13 11:09:47.426  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/shipping]}" onto public shipping.Shipping shipping.ShippingController.shipping(long)
product-shipping-service_1  | 2020-03-13 11:09:47.491  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
product-search-service_1    | 2020-03-13 11:09:47.451  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
product-search-service_1    | 2020-03-13 11:09:47.758  INFO 1 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
product-shipping-service_1  | 2020-03-13 11:09:47.495  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
product-shipping-service_1  | 2020-03-13 11:09:47.773  INFO 1 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
product-search-service_1    | 2020-03-13 11:09:47.763  INFO 1 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
product-shipping-service_1  | 2020-03-13 11:09:47.778  INFO 1 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
product-search-service_1    | 2020-03-13 11:09:49.191  INFO 1 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
product-shipping-service_1  | 2020-03-13 11:09:49.232  INFO 1 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
product-shipping-service_1  | 2020-03-13 11:09:49.633  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 5000 (http) with context path ''
product-search-service_1    | 2020-03-13 11:09:49.612  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 5000 (http) with context path ''

我还想指出,我一直在关注本教程,并且我可以确认所有之前的步骤都已正确完成,因为我现在已经多次这样做了

https://cpit490.gitlab.io/labs/lab-8/

当我尝试连接到 127.0.0.1 时,是否可以启用任何日志记录功能以便更好地了解发生了什么?

编辑

附上错误截图

编辑 2

网络应用程序的 Dockerfile

FROM httpd:2-alpine
EXPOSE 80
EXPOSE 443

编辑 3

我正在使用 docker 工具箱,以防这有什么不同。我没有win10 pro或企业版,所以我不得不使用工具箱

【问题讨论】:

  • 请包含docker run --rm --net container:${cid} nicolaka/netshoot ss -lnt 的输出,其中${cid} 是网站应用容器的容器ID。
  • 嗨@BMitch我不确定我是否正确运行了这个,但这是运行的命令和我收到的输出 $ docker run --rm --net container:b605c0901b9f nicolaka/netshoot ss - lnt 无法在本地 C:\Program Files\Docker Toolbox\docker.exe 找到图像“nicolaka/netshoot:latest”:来自守护进程的错误响应:获取registry-1.docker.io/v2:拨号 tcp:在 10.0 上查找 registry-1.docker.io。 2.3:53: 读取 udp 10.0.2.15:34228->10.0.2.3:53: i/o 超时。请参阅 'C:\Program Files\Docker Toolbox\docker.exe run --help
  • 您有互联网连接吗?表示您的 DNS 服务器找不到 docker hub。如果您处于断开连接的环境中,则需要先通过其他方式提取该图像。
  • 屏幕截图显示尝试连接到端口 8081,但不是 8080...
  • 是的,有互联网连接。我已经运行了一些其他 docker 项目,它们连接得很好。关于港口。 8080、8081、443、80等我都试过了

标签: spring docker docker-compose


【解决方案1】:

所以我已经解决了这个问题。

因为我在 Win10 主页上运行 Docker Toolbox,所以我的 docker 是从拥有自己 IP 地址的 VirtualBox 运行的。要连接到我的 webapp,我需要使用 VB 的 IP 而不是我的本地主机。 Win10 home 没有虚拟机管理程序,所以 localhost 基本上对我来说是被锁定的 :(

归功于Docker Toolbox - Localhost not working

【讨论】:

    【解决方案2】:

    您似乎没有将容器的端口正确映射到 localhost。 更新您的 yaml 文件,如下所示:

    version: '3'  
    services:      
    product-search-service:
    
              build: ./product-search-app
              ports:
                - 8000:80
                - 8001:443      
    product-shipping-service:
    
              build: ./product-shipping-app
              ports:
                - 9000:80
                - 9001:443      
    website-app:
    
              build: ./web-app
              ports:
                - 8080:80
                - 8081:443
              volumes:
                - ./web-app/public-html:/usr/local/apache2/htdocs/
    

    现在您可以浏览到 本地主机:8080 或本地主机:8081

    【讨论】:

    • 嘿,谢谢你的回答。不幸的是,它似乎没有用。我尝试从命令提示符发送 curl 请求,但即使这样也拒绝连接。
    • 现在附上。网络选项卡不显示任何信息,只是文档请求
    • 现在还公开网站应用程序(在 dockerfile 中)的端口,例如 EXPOSE 80 EXPOSE 443
    • 刚刚试过这个。结果相同。我在新编辑中包含了 web 应用程序的完整 dockerfile。 dockerfile 是由我在帖子中链接的教程提供的,所以我刚刚添加了你所要求的 Exposes
    猜你喜欢
    • 2017-04-12
    • 2021-10-12
    • 2018-12-13
    • 2016-03-08
    • 2017-08-05
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    • 2020-10-11
    相关资源
    最近更新 更多