2016-07-25 11 views
0

Ich versuche, von mehreren VM mit statischen IP zu Container-basierte Lösung zu migrieren.Docker Netzwerk direkten Zugriff auf Container

Jetzt VM Ich verwende mit statischen ip:

enter image description here

ich meine VMs telnet 10.48.0.10 5432 ping und telnet und telnet 10.48.0.11 5432

Ich möchte einen einzigen Docker Host erstellen, die mir erlaubt, zu tun das gleiche:

enter image description here

Es wäre Wenn ich kann telnet 172.17.0.2 5432 und telnet 172.17.0.3 5432

Ich versuche, es über Docker zu tun, weil ich die Konfiguration verwalten möchte.

Was wäre der richtige Weg, dies zu tun? Soll ich einen TCP-Proxy in einem Container verwenden, um dies zu verwalten?

Antwort

1

Die Lösung ist recht einfach.

ein Netzwerk erstellen und binden sie an den Host

docker network create --subnet=10.0.0.0/24 -o "com.docker.network.bridge.host_binding_ipv4"="0.0.0.0" mynet 

dann einen Container laufen auf mynet Netzwerk

docker run -ti --net=mynet --ip=10.0.0.30 busybox 

von einem anderen Computer Nun, wenn Sie Route zu Ihrem Docker Host hinzufügen (192.168.2.156) für dieses Subnetz:

sudo route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.2.156 

Sie können Ihren Container anpingen (ping 10.0.0.30)

0

Wenn Sie auf die Container von Ihrem Host oder von einem anderen Server zugreifen möchten, der Ihren Host erhalten kann, müssen Sie jeden Container einem anderen Port im Host-Server zuordnen.

docker run -d -p 54321:5432 my_app 
docker run -d -p 54322:5432 my_app 

So werden Sie können telnet 10.200.0.1 54321 und telnet 10.200.0.1 54322

Verwandte Themen