In meiner Produktionsumgebung habe ich einige Apps in Docker, die eine Verbindung zu unterstützenden Diensten herstellen müssen, z. B. zur Datenbank auf demselben Host. Ich habe festgestellt, dass ich in iptables eine Ausnahme machen muss, um diese Verbindungen zu akzeptieren.
Der IP-Bereich des Docker-Netzwerks variiert jedoch zwischen den Neustarts. Zuerst war es 172.18.0.0/24, später 172.17.0.0/24 und 172.20.0.0/24, jetzt sind die IPs 192.168.172.2 und 192.168.192.3.
Wie können Sie Docker-Verkehr innerhalb eines Containers, beispielsweise zu MariaDB, zuverlässig und sicher zulassen?
EDIT: Eine Antwort scheint zu seinAngeben der IPAM-Konfiguration, aber das Anhängen an eine Schnittstelle scheint eleganter
Antwort1
Zwei Optionen:
Erste
Erlauben Sie den Zugriff über die docker0
Schnittstelle und nicht über einen bestimmten IP-Bereich.
iptable -A INPUT -i docker0 -dport 3306
Zweite
Verschieben Sie die Datenbank in einen Container.
Erstellen Sie einen Docker mit dem Namen „Netzwerk“
Stellen Sie sicher, dass alle Container an das benannte Netzwerk angeschlossen sind. Sie sollten dann von jedem anderen Container (im selben Netzwerk) aus über den Namen auf den Datenbankcontainer zugreifen können.
Wenn Sie extern auf die Datenbank zugreifen müssen, können Sie den Port zuordnen und die gewünschten iptables-Regeln zum Sichern einrichten.