将笔记本电脑本地主机端口暴露给Docker容器



我有一个RESTful应用程序,它将回调URL作为在端口8000上运行的参数。它做了一些工作,并调用回调URL以确保它应该继续工作,并在出现任何问题时进行调用。在我的测试中,我只是在localhost端口8009上启动一个HTTP服务器来等待响应。

当我直接运行应用程序时,它运行良好,因为localhost是相同的。然而,当我在容器中本地运行应用程序时,由于容器的网络隔离,它显然不起作用。这是我的docker-compose.yml:的一部分

version: '3'
services:
app:
build: .
ports:
- "8000:8000"

我试图在ports下添加- "8009:8009",但这只是一个方向。我可以调用8000端口来调用API,但我不知道如何允许容器调用我笔记本电脑的http://localhost:8009

知道如何允许容器调用我笔记本电脑上的另一个端口,或者是否有更好的方法来测试回调功能吗?我可以在容器中运行测试,但我喜欢能够单独运行它们。

在docker compose文件中使用--network:"host",然后docker容器中的localhost将指向docker主机。

如果您的笔记本电脑运行的是Mac和Windows,请使用主机host.docker.internal,它解析为主机的IP地址,然后使用笔记本电脑主机名进行连接。

最新更新