在我的生產環境中,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 規則。