
Ich habe einige Docker-Container, die auf ein gemeinsam genutztes PostgreSQL zugreifen sollen, das auf dem Gentoo-Host läuft. Dies funktioniert gut, wenn die Docker-Apps über die öffentliche IP des Hosts eine Verbindung zur Datenbank herstellen.
Ich möchte die Dinge jedoch ein wenig entkoppelndurch Verwendung einer zusätzlichen privaten IP beim Loopbackanstelle der öffentlichen IP sagen wir 10.172.17.1.
Ich bin mir nicht sicher, was zu /etc/conf.d/net hinzugefügt werden muss, und da es sich um eine Remote-Box handelt, auf die ich keinen physischen Zugriff habe, bin ich etwas zögerlich, einfach damit herumzuspielen. Vielleicht hat jemand einen Tipp für mich?
Vielen Dank!
Antwort1
Ich bin selbst darauf gekommen:
Es ist möglich, config_lo 10.172.17.1/32
/etc/conf.d/net hinzuzufügen und diese zusätzliche IP dann zuzuweisen, indem der net.lo-Dienst mit neu gestartet wird rc-service net.lo restart
. Dies wird den nächsten Neustart jedoch nicht überstehen.
Ab heute startet Gentoo den net.lo-Dienst nicht mehr, um den Loopback zu starten, sondern verwendet ein separates Skript /etc/init.d/loopback. Das Skript erledigt ifconfig
seine Arbeit, die IPs sind fest codiert. Das Skript selbst zu patchen wäre sicherlich keine gute Idee.
Da die zusätzliche IP aber nur beim Starten der Docker-Container benötigt wird, kann sie vom lokalen Dienst hinzugefügt werden:
cat "ip addr add 10.172.17.1/32 dev lo scope host" >/etc/local.d/docker_loopback.start
cat "ip addr del 10.172.17.1/32 dev lo scope host" >/etc/local.d/docker_loopback.stop
chmod a+x /etc/local.d/docker_loopback.*
Starten Sie nun entweder neu oder führen Sie einfach das Startskript aus und überprüfen Sie anschließend das Ergebnis:
/etc/local.d/docker_loopback.start
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
valid_lft forever preferred_lft forever
inet 10.172.17.1/32 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever