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

How can I run my Docker Image and see working app?

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

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

当我执行命令 docker 运行 时,我想看到我的网络应用程序正在运行。 我怎样才能更改图像或其他任何内容(NettyWebServer 属性)的端口以在该端口上看到我想要的 运行ning 图像? 你能帮我解决这个问题吗? 谢谢。

如果您希望 docker 映像中的端口与本地环境中的端口不同,您可以在 [=15= 中使用此命令指定 server.port=XXXX 复制不同的 application.properties 文件]

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) 的东西并查看IP 那里。