4

在 docker 容器中运行,端口 9005 可用于主机操作系统,当我运行时

firebase 服务 -p 9005

然后尝试从主机操作系统(windows)访问它

使用http://localhost:9005我得到一个空响应

4

2 回答 2

10

要强制 firebase serve 可见,您必须指定它以强制它绑定到地址 0.0.0.0 否则绑定默认为 localhost

所以你需要运行

firebase 服务 -p 9005 -o 0.0.0.0

确保使用 docker 命令行选项 -p 公开和发布 9005

于 2017-03-13T12:57:24.230 回答
0

对于您的主机是本地主机,例如 127.0.0.1,对于 docker 容器也是本地主机,也可能是 127.0.0.1。但是这些是不一样的,这是两个不同的东西!

您必须配置一个在 docker 容器中运行的进程以使用所有接口,这称为 0.0.0.0 这不是 localhost。

firebase serve -p 9005 -o 0.0.0.0

然后你必须公开端口,在上面的例子9005中。见https://docs.docker.com/engine/reference/commandline/run/#publish-or-expose-port--p---expose

docker run --expose 9005 $CONTAINER $PARAMS

或在 Dockerfile 中使用类似的内容:

EXPOSE 9005/tcp
EXPOSE 9005/udp 

见这里:https ://docs.docker.com/engine/reference/builder/#expose

于 2019-09-25T10:28:28.447 回答