如何运行Docker Image并查看正在运行的应用程序?

时间:2019-01-22 06:48:17

标签: java spring-boot docker gradle jib

我用Java创建了一个示例Web应用程序(使用Gradle和SpringBoot),然后使用Jib对其进行了docker化。在我的build.gradle文件中,有一行:“ ports = ['9090']”,因为我想在此端口上看到web-app。在我的application.properties文件中,有一行:“ server.port = 9090”。

成功创建Docker映像。但是,当我运行此图像时,我看不到其工作的结果。   如果我运行jar文件,一切正常。 Web应用程序可在9090端口上运行。

当我执行命令 docker run 时,我希望看到我的Web应用程序正常工作。   如何更改映像或任何其他端口(NettyWebServer属性)的端口,以查看所需的该端口上正在运行的映像?   您能帮我解决这个问题吗?   谢谢。

1 个答案:

答案 0 :(得分:1)

如果您要在docker映像中使用与本地环境不同的端口,则可以使用application.properties

中使用此命令指定的server.port=XXXX复制不同的Dockerfile文件
COPY ./src/main/resources/docker-application.properties /opt/my-app/docker-application.properties

然后在您的entrypoint.sh

java -jar /opt/my-app/my-app-0.0.1-SNAPSHOT.jar --spring.config.location=/opt/my-app/docker-application.properties

使用工具(Maven或Gradle)构建应用之后,您需要运行以下命令(假设您使用Dockerfile等位于应用目录中)

docker build -t my-app .
docker run -d -p [desired_port]:[docker_application_properties_port] --name my-app my-app

desired_port是您将在URL中放入的端口。 docker_application_properties_port是您在docker-application.properties文件中指定的文件。

如果您正在运行Windows OS,那么很多用户在尝试使用127.0.0.1:9090时都会出错。您应该尝试使用192.168.99.100:9090,如果它不起作用,则需要先运行CMD,然后运行ipconfig /all,然后寻找类似Ethernet Adapter (DockerNAT)的内容,然后查看{{1} }。