【问题标题】:exposing backend docker container via ngrok通过 ngrok 暴露后端 docker 容器
【发布时间】:2020-11-30 16:31:10
【问题描述】:

我已将我的 expo react 本机应用程序(前端和后端)docker化。

而且我可以将 react 原生应用加载到我的手机(使用 expo)。

但是,移动应用如何向后端 docker 容器发送请求?

以前,在没有 docker 容器的情况下,我在 localhost:3000 上运行服务器并使用以下命令运行 ngrok,移动应用程序能够使用 ngrok 提供的 URL 与后端通信

// worked without docker
ngrok http 3000

我尝试了以下步骤,但没有奏效。两个容器都成功运行,但连接失败

docker container run -p 3000:3000 --rm --name backend myapp-backend
docker run --rm -d -p 4040 --link backend:http --name ngrok -e NGROK_PORT=3000 wernight/ngrok 

这是我关注的链接

https://github.com/wernight/docker-ngrok

【问题讨论】:

  • 从您的计算机浏览器或HTTP客户端,您可以访问3000端口的后端吗?
  • 是的。 localhost:3000 工作得很好
  • 所以你真的不需要在 docker 容器中运行ngrok。我建议继续在您的主机中本地使用 ngrok。我不明白为什么ngrok http 3000 不起作用。
  • 因为我不想在我的本地设置上安装它们。我想对所有事情都使用 docker,这样任何人都可以轻松运行它

标签: docker ngrok


【解决方案1】:

我想通了。 命令应该是这样的。

docker run --rm -it -d -p 4040 --link backend --name ngrok  wernight/ngrok ngrok http backend:3000

【讨论】: