Docker ngrok 容器与另一个容器应用程序。如何连接?

Ann*_*a K 6 docker

我正在尝试将 ngrok 与我的 web 应用程序连接

当我使用我的应用程序 docker id 启动 ngrok 容器时

sudo docker run --rm -it wernight/ngrok ngrok http dfe68e946200:8000
Run Code Online (Sandbox Code Playgroud)

什么都没发生

如果我开始

sudo docker run --rm -it wernight/ngrok ngrok http localhost:8000
Run Code Online (Sandbox Code Playgroud)

我的网关总是不好

如果我在没有 docker 容器的情况下做所有事情,一切都会正常。

有没有任何解决方案可以让 ngrok 容器与我的 webapp 容器对话?我在容器 web 应用程序中打开了端口 8000

到目前为止我发现只有一种解决方案:

我需要获取容器的 IP 地址并启动 ngrok,如下所示:

sudo docker run --rm -it wernight/ngrok ngrok http 172.17.0.4:8000
Run Code Online (Sandbox Code Playgroud)

但我不喜欢这个解决方案:(因为它需要很长时间。还有其他更简单的方法吗?

yam*_*enk 2

连接容器的标准 docker 方式是 docker 网络。创建一个 docker 网络并将两个容器连接到它。

sudo docker network create mynet
sudo docker network connect mynet <app-container-name>
sudo docker run --network mynet --rm -it wernight/ngrok ngrok http <app-container-name>:<internal-app-container-port>
Run Code Online (Sandbox Code Playgroud)

当容器连接到同一网络时,它们可以使用容器名称作为主机名相互连接。