在我的生产环境中,Docker 中的一些应用程序需要连接到后端服务,例如同一主机上的数据库。我发现我需要在 iptables 中设置例外才能接受这些连接。
但是,docker 网络的 ip 范围在重新启动时会发生变化。起初是 172.18.0.0/24,后来是 172.17.0.0/24 和 172.20.0.0/24,现在 ip 是 192.168.172.2 和 192.168.192.3。
如何接受来自容器内部的 Docker 流量以便可靠且安全地使用 mariadb?
编辑:答案似乎是指定 IPAM 配置,但附加到接口似乎更优雅
答案1
两个选项:
第一的
允许从docker0
接口而不是特定 IP 范围进行访问。
iptable -A INPUT -i docker0 -dport 3306
第二
将数据库移入容器。
创建名为 network 的 docker
确保所有容器都连接到指定网络。然后,您应该能够从任何其他容器(在同一网络上)按名称访问数据库容器。
如果您需要从外部访问数据库,您可以映射端口并设置您想要保护的 iptables 规则。