如何解决如何测试docker容器内的web服务
我现在正在测试作为 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 中 curl 网络服务?
解决方法
在您的 docker swarm init 命令中,您将监听和广告地址设置为回送接口的地址。您可以尝试使用广播地址 0.0.0.0 进行部署。
docker swarm init --advertise-addr=0.0.0.0 --listen-addr 0.0.0.0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。