我无法从 docker 容器访问主机私有接口 (ip)。我相当肯定它与我的 Iptables 规则(或者可能是路由)有关。当我将--net=host标志添加到 时docker run,一切都按预期工作。同样,当我指定 INPUT 政策遵循自由主义时-P INPUT ACCEPT,事情也如我所愿。然而,这些是我想避免的不受欢迎和不安全的选择。
由于它不是特定于我的服务 (DNS),因此我已将其排除在问题之外,因为与 docker 结合搜索会在不同的(流行的)问题区域中产生,从而给搜索结果增加噪音。
此外,链接 Docker 容器也不是一个可行的选择,因为某些容器需要使用 --net=host 选项运行,从而阻止链接,我想尽可能创建一致的情况。
我有以下 Iptables 规则。我假设是 CoreOS、Digital Ocean 和 Docker 的组合。
-P INPUT DROP
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N DOCKER
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p icmp …Run Code Online (Sandbox Code Playgroud)