dFr*_*sco 2 java rest docker spring-boot
我正在构建一个Spring Boot应用程序,它具有几个不同的REST端点。可以将其本地打包并成功作为jar文件启动。在本地运行时,我可以通过“ http:// localhost:8080 / endpoint?params ..” 访问其端点。我的任务是现在准备将此应用程序运行在Docker之外。仍在我的本地计算机上工作,我基于Java:8映像创建了一个Dockers容器。在此容器中,我已经能够从.jar成功运行我的应用程序。我的问题是,当从Docker托管应用程序时,我不理解如何调用应用程序内的REST端点,因为从逻辑上讲localhost:8080 / endpoint不再响应该调用。
附加信息:我的本地计算机是Windows,Docker映像是Ubuntu(最终将在Linux服务器上启动)。
更新:使用以下Dockerfile创建了一个新映像:
FROM openjdk:8
MAINTAINER My Name email@email.com
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
EXPOSE 8080
RUN javac Main.java
CMD ["java", "Main"]
Run Code Online (Sandbox Code Playgroud)
同样的问题,无法通过http:// localhost:8080 / endpoint访问端点
任何帮助将不胜感激。谢谢!
您需要发布端口(不是EXPOSE)。公开端口主要用于链接和服务上下文。在仅运行Docker容器的示例中,您只需简单地发布端口,以便主机可以使用它。您可以使用--publish或进行此操作-p:
docker run -d --name myapp -p 8080:8080 myappimage
Run Code Online (Sandbox Code Playgroud)
然后,您可以在主机IP地址的端口8080上访问应用程序(Windows上的Docker和Mac上的Docker运行应允许localhost:8080工作的代理)。
| 归档时间: |
|
| 查看次数: |
8301 次 |
| 最近记录: |