Can';t打开部署在Docker上的应用程序页面

Can';t打开部署在Docker上的应用程序页面,docker,Docker,Windows 10,Spring启动应用程序 我成功地运行并构建了Gradle的Spring Boot项目 In application.yml server: port: 8090 按如下项目构建: 格雷德尔装配 作为文件夹构建创建工件的结果 /eshop/java/eshop/build/libs/eshop-0.0.1.jar 我可以这样运行我的应用程序(在build/lib文件夹中): java-jareshop-0.0.1.jar 成功打开此地址上的网页: 很好 现在我想在

Windows 10,Spring启动应用程序 我成功地运行并构建了Gradle的Spring Boot项目

In application.yml

server:
  port: 8090
  • 按如下项目构建:

    格雷德尔装配

  • 作为文件夹构建创建工件的结果

    /eshop/java/eshop/build/libs/eshop-0.0.1.jar
    
  • 我可以这样运行我的应用程序(在build/lib文件夹中):

    java-jareshop-0.0.1.jar

  • 成功打开此地址上的网页:

  • 很好

    现在我想在Docker中部署并运行我的应用程序

    因此,我的步骤如下:

    1.在项目文件夹中创建下一个Dockerfile:

    FROM openjdk:8
    ADD build/libs/eshop-0.0.1.jar eshop-0.0.1.jar
    EXPOSE 8085
    ENTRYPOINT ["java", "-jar", "eshop-0.0.1.jar"]
    
  • 运行Docker服务器
  • 在我的项目文件夹中打开docker控制台
  • 创建docker映像:

    docker build-f Dockerfile-t eshop

  • 打印图像列表

    docker图像

    $ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    eshop               latest              d3059d8ce7a0        20 seconds ago      534MB
    <none>              <none>              e25799bbe4e3        23 hours ago        534MB
    openjdk             8                   8c6851b1fc09        6 days ago          488MB
    tomcat              latest              94e31e5297d1        4 weeks ago         507MB
    hello-world         latest              fce289e99eb9        13 months ago       1.84kB
    
  • 打印所有容器

    $docker ps 容器ID映像命令已创建状态端口名称 bf2833e14739 eshop“java-jar eshop-0.0…”大约一分钟前,大约一分钟前,大约8085/tcp flamboyant_brown

  • 在我的容器上打印ip地址

    $docker inspect bf2833e14739 | grep“IPAddress” “SecondaryIPAddresss”:空, “IPAddress”:“172.17.0.2”, “IPAddress”:“172.17.0.2”

  • 现在我尝试在地址
    http://172.17.0.2:8090/
    但它没有打开。 还可以试穿
    http://172.17.0.2:8085/
    但它没有打开

  • 为什么?

    我找到了解决方案:

  • 打印ip

    docker机器ip默认值

  • 我得到了
    192.168.99.100

  • 流动容器

    docker run-p 8090:8090 eshop

  • 并打开下一个地址的页面:

  • 现在是开放式成功

    我找到了解决方案:

  • 打印ip

    docker机器ip默认值

  • 我得到了
    192.168.99.100

  • 流动容器

    docker run-p 8090:8090 eshop

  • 并打开下一个地址的页面:


  • 现在是open success

    您的应用程序在8090和8085上运行!特定于Docker的选项(如
    -p
    )必须位于图像名称之前。
    docker inspect
    IP地址除了在一个非常特定的docker主机配置上之外是无用的,我建议永远不要查找它。@Elgayed,但我用它来公开我的应用程序:docker run eshop-p 8090:8090。它一定在端口8090?@DavidMaze我尝试了这个docker运行-p 8090:8090 eshop,但也没有帮助。我在application.yml中更改为EXPOSE 8090,但它也没有帮助您的应用程序在8090和exposing 8085上运行!特定于Docker的选项(如
    -p
    )必须位于图像名称之前。
    docker inspect
    IP地址除了在一个非常特定的docker主机配置上之外是无用的,我建议永远不要查找它。@Elgayed,但我用它来公开我的应用程序:docker run eshop-p 8090:8090。它一定在端口8090?@DavidMaze我尝试了这个docker运行-p 8090:8090 eshop,但它也没有帮助。我在application.yml中更改为公开8090,但它也没有帮助
    [INFO ] 2020-01-29 17:05:24.265 [main] ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
    [INFO ] 2020-01-29 17:05:24.878 [main] WelcomePageHandlerMapping - Adding welcome page template: index
    [INFO ] 2020-01-29 17:05:26.209 [main] EndpointLinksResolver - Exposing 5 endpoint(s) beneath base path '/actuator'
    [INFO ] 2020-01-29 17:05:26.480 [main] Http11NioProtocol - Starting ProtocolHandler ["http-nio-8090"]
    [INFO ] 2020-01-29 17:05:26.601 [main] TomcatWebServer - Tomcat started on port(s): 8090 (http) with context path ''
    [INFO ] 2020-01-29 17:05:26.610 [main] Main - Started Main in 34.679 seconds (JVM running for 42.95)