【发布时间】:2018-09-29 02:32:29
【问题描述】:
我已经看到了这种明显常见场景的几种变体,但所有提供的解决方案都针对每种情况(例如,如果您要共享的服务是 MySQL,则共享 sock 文件)。
我在主机上有一个服务。为简单起见,假设它是 netcat 监听 127.0.0.1:5000 TCP。
我需要使用另一个 netcat 或 telnet 从容器连接到该地址,并且能够发送和接收数据。
由于某些原因(包括安全性),主机服务需要位于 127.0.0.1(而不是另一个 IP)中,并且该服务无法绑定到多个接口。使用 0.0.0.0 实在不行。
从理论上讲,这似乎是 IP 表应该能够解决的问题,但我无法让它工作,所以我假设它是 Docker 在主机中的规则有机会处理之前过滤掉数据包它们(iptables 日志不会显示主机接收到任何数据包)。
编辑:如果可能的话,我想避免使用主机网络驱动程序。
【问题讨论】:
-
你可以在容器内移动主机服务吗?
-
@BMitch 不是真的,它增加了许多其他问题。我试图避免这种情况——不想“完全容器化”。无论如何,我想通了。
标签: docker iptables docker-networking