【问题标题】:Docker image ran successfully but application didn't runDocker 镜像运行成功,但应用程序没有运行
【发布时间】:2019-10-25 21:21:31
【问题描述】:

我创建了一个用于部署微服务的 docker 镜像。

我现在正在通过尝试在我的本地机器上部署来测试 ti。

docker容器ogt创建成功,我正在开始应用

 o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2019-10-25 12:41:53.867  INFO [] 1 --- [           main] d.s.w.p.DocumentationPluginsBootstrapper : Context refreshed
2019-10-25 12:41:53.901  INFO [] 1 --- [           main] d.s.w.p.DocumentationPluginsBootstrapper : Found 1 custom documentation plugin(s)
2019-10-25 12:41:53.949  INFO [] 1 --- [           main] s.d.s.w.s.ApiListingReferenceScanner     : Scanning for api listing references
2019-10-25 12:41:54.230  INFO [] 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''

但是当我尝试像这样 localhost:8080/myApi/test
它给了我错误

 localhost refused to connect.
Search Google for localhost 8080 payment
ERR_CONNECTION_REFUSED

可能出了什么问题?

检查运行图像列表docker ps 给了我一个带有空端口详细信息的条目。这可能是原因吗?

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                PORTS               NAMES
2feab85c47db        test_3      "java -Dserver.port=…"   18 minutes ago      Up 18 minutes                             wizardly_leavitt

【问题讨论】:

标签: docker microservices


【解决方案1】:

要访问容器内的服务,您需要将主机端口转发到容器端口。

可以在命令行中使用 -p HOST_PORT:CONTAINER_PORT 参数来完成。

docker run -it -p 8080:8080 test_3

参考号:https://docs.docker.com/config/containers/container-networking/

【讨论】:

  • 使用该命令对我有用。你能解释一下吗?之前我在 telnet 列表中看不到 8080 端口处于活动状态。
  • 在你的 docker ps 命令中显示端口是在你的 Dockerfile 中公开它们(这样你就告诉 docker 指定的端口正在等待连接)或转发端口(它将显示所有转发的端口列表)。您可以在此链接中找到更多信息:docs.docker.com/config/containers/container-networking
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多