微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 docker 启动的容器的已发布端口上的“连接被拒绝”,但与 Testcontainers 的连接工作正常

如何解决使用 docker 启动的容器的已发布端口上的“连接被拒绝”,但与 Testcontainers 的连接工作正常

我使用 Spring Boot 编写了一个 Web 服务,监听端口 8443。 我在 Dockerfile 中公开端口 8443 并使用 docker run --name container-name -it image-name -p 127.0.0.1:8443:8443 选项。尽管如此,我无法使用 curl https://127.0.0.1:8443/endpoint -k -v 访问应用程序,即使在容器内运行相同的命令时也是如此。

在我使用 Testcontainers(禁用 ryuk)并使用 Retrofit 连接到暴露端口的集成测试中,连接工作正常。我也可以使用相同的 curl 命令连接到暴露的端口(当然使用 Testcontainers 暴露的端口,通常在 3277X 范围内)。

在容器上使用 docker inspect 表明在我启动的容器中,“网络”中的“端口”部分如下所示:

"Ports":{"8443/tcp":null}

但是在由 Testcontainers 启动的容器中,它看起来像这样:

"Ports":{"8443/tcp":[{"HostIp":"0.0.0.0","HostPort":"32777"}]}

这背后的原因是什么?

我使用的是 Docker Desktop v2.1.0.3 (38240),无法升级

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。