【问题标题】:How to test the web service inside the docker container如何在 docker 容器中测试 Web 服务
【发布时间】:2021-05-05 09:44:50
【问题描述】:

我现在正在测试作为 Java Spring Boot 程序的 Web 服务的可用性。当我在本地运行它并使用 curl 获取响应时,无论成功与否,它都会显示状态代码:

curl -I localhost:8080/xxx

返回结果:

HTTP/1.1 200
Content-Type: text/plain;charset=UTF-8
Content-Length: 0
Date: Mon, 01 Feb 2021 11:49:57 GMT

但是当我尝试在docker swarm中测试它时,它一直无法访问外部的web服务表单,目前我只能测试容器内的web服务:

docker exec -it [ID] /bin/sh
curl -I localhost:8080/xxx

HTTP/1.1 200
Content-Type: text/plain;charset=UTF-8
Content-Length: 0
Date: Mon, 01 Feb 2021 11:53:07 GMT

这是我用来初始化 swarm 的 docker 命令:

docker swarm init --advertise-addr=127.0.0.1 --listen-addr 127.0.0.1

docker service create --replicas 1 -p 8088:8080 --name webtest --mount source=afdiavol,target=/ia_ai_ms bility/aia:2.0.3.6t

有谁知道如何在 docker swarm 中卷曲 web 服务?

【问题讨论】:

  • 您正在运行什么命令来发出请求?它返回什么?这些细节通常需要在问题本身中,而不是在链接后面,并且是纯文本,而不是图像。
  • @DavidMaze 我刚刚编辑了我的帖子,你可以看看。感谢您的回复。

标签: java spring-boot docker docker-swarm


【解决方案1】:

在您的 docker swarm init 命令中,您将侦听和广告地址设置为环回接口的地址。您可以尝试使用广播地址 0.0.0.0 进行部署。

docker swarm init --advertise-addr=0.0.0.0 --listen-addr 0.0.0.0

【讨论】:

  • 尝试过,但出现错误:来自守护进程的错误响应:广告地址必须是非零 IP 地址或网络接口(带有可选端口号)
猜你喜欢
  • 2012-10-23
  • 1970-01-01
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-12
  • 2015-08-19
相关资源
最近更新 更多