无法访问 docker 容器中的 REST 端点

Posted

技术标签:

【中文标题】无法访问 docker 容器中的 REST 端点【英文标题】:Unable to access rest endpoint in a docker container 【发布时间】:2020-07-28 15:00:49 【问题描述】:

我的 Dockerfile 中有一个简单的 Spring Boot Rest 服务项目:

FROM openjdk:8

EXPOSE 8080

ADD /target/spotdemo-0.0.1-SNAPSHOT.jar spotdemo.jar

ENTRYPOINT ["java", "-jar", "spotdemo.jar"]

镜像构建成功,我也可以为它启动容器:

docker run -p 8080:8080 -t spotdemo-microservice

.......

在 3.256 秒内启动 SpotDemoApplication(JVM 运行 4.005)

但是尝试从邮递员访问端点会抛出错误:


"timestamp": "2020-04-15T15:08:43.218+0000",
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/hello"

我还应该在这里做什么?

编辑:

控制器为:

@RestController
public class TestController 

  @GetMapping("/hello")
  public String hello() 
    return "Hello World";
  

调用如下:

http://localhost:8080/hello

【问题讨论】:

哈?你真的在处理/hello 端点吗?向我们展示控制器的代码以及适当的帮助。您发送的确切请求是什么(方法和 URL)? 【参考方案1】:

可能是this的重复。

但似乎答案是:

将 server.address=0.0.0.0 添加到 application.properties

【讨论】:

以上是关于无法访问 docker 容器中的 REST 端点的主要内容,如果未能解决你的问题,请参考以下文章

*** 开启时无法访问 REST 端点

使用docker-compose时无法访问docker容器内的spring-boot rest-endpoint

从 Docker 容器中访问主机上的 MySQL 数据库

如何让 VPC 端点在 Docker 容器中工作?

在 K3s 中使用 Kubernetes 服务端点的本地 Mongo DB 容器访问不起作用

从另一个容器调用 docker 容器