【发布时间】:2020-02-12 07:35:18
【问题描述】:
我想将流量从远程服务器上的 docker 容器转发到我的本地开发服务器。
基本上我有以下设置,
- 我在端口 3000 上有一个本地开发服务器。
- 我有一个远程服务器,它运行一个带有 nginx 的 Docker 容器,用于接收传入的 Web 流量(未显示传入的 Web 流量)。这部分已经开始工作了。
- 容器中的传入 Web 流量被转发到容器中的端口 7890。
- 我已使用
-p 7890:7890将容器上的端口 7890 发布到端口 7890 上的主机。 - 然后,我尝试使用
ssh -R 7890:localhost:3000 -N myexampledomain.com设置从远程服务器到本地网络服务器的反向ssh 隧道,但随后我收到消息Warning: remote port forwarding failed for listen port 7890,可能是因为Docker 已代表绑定了端口7890容器。
如何将流量从 Docker 容器转发到我的本地开发机器?
我觉得我在这里遗漏了部分谜题。你对如何解决这个问题有什么建议吗?出于各种原因,我想继续使用 Docker(我意识到将 Docker 扔出窗外会更容易实现这个特定示例)。
详细说明当前情况的图像(传入的网络流量除外)。
【问题讨论】:
-
什么流量应该到达 nginx 容器,vs. 被路由到您的开发系统?我认为您的图表中令人困惑的一点是“容器发布”箭头指向另一个方向——它将流量从主机端口 7890 路由到 nginx 容器内的匹配端口。包括你的 nginx 配置片段和相关的
docker run命令可能有助于澄清事情。