Verbindung von einem Docker-Container zu einem anderen
Möchte ich laufen rabbitmq-server in einem docker-container und verbinden Sie es aus einem anderen container mit Sellerie (http://celeryproject.org/)
Ich habe rabbitmq läuft mit dem nachstehenden Befehl...
sudo docker run -d -p :5672 markellul/rabbitmq /usr/sbin/rabbitmq-server
und ausführen der Sellerie über
sudo docker run -i -t markellul/celery /bin/bash
Wenn ich versuche zu tun, die sehr einfache tutorial zum überprüfen der Verbindung auf http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html
Bin ich immer ein connection refused Fehler:
Verbraucher: Keine Verbindung zu amqp://[email protected]:5672//: [Errno 111]
Verbindung verweigert.
Wenn ich installieren rabbitmq auf den gleichen container wie Sellerie funktioniert es einwandfrei.
Was muss ich tun, um container, die miteinander interagieren?
InformationsquelleAutor der Frage Mark Ellul | 2013-08-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
[Bearbeiten 2016]
Direkte links sind veraltet jetzt. Die neue Art und Weise zu tun, link-Container ist docker Netzwerk verbinden. Es funktioniert ganz ähnlich wie virtuelle Netzwerke und hat ein breiteres feature-set ist als die alte Art und Weise der Verlinkung.
Zunächst erstellen Sie Ihren benannte Container:
Dann erstellen Sie ein Netzwerk (Letzte parameter ist der name Ihres Netzwerks):
Verbinden Sie die Behälter zu Ihrem neu erstellten Netzwerk:
Nun sind beide Behälter sind im selben Netz und können miteinander kommunizieren.
Eine sehr ausführliche Bedienungsanleitung finden Sie unter Arbeit mit Netzwerken: Schließen Sie Behälter.
[alte Antwort]
Es ist ein neue Funktion im Andockfenster 0.6.5 genannt verknüpfen, die helfen soll, die Kommunikation zwischen docker-Container.
Erstellen Sie zunächst Ihre rabbitmq-container wie gewohnt. Beachten Sie, dass ich auch die neuen "Namen" - Funktion, die macht das Leben ein kleines bisschen einfacher:
Können Sie über den link-parameter zum zuordnen eines Behälters (wir verwenden hier den Namen, die id wäre auch ok):
Jetzt haben Sie Zugriff auf die IP und den Port des rabbitmq-container, weil docker automatisch Hinzugefügt einige Umgebungsvariablen:
Neben Docker fügt einen host-Eintrag für die Quell-container in den
/etc/hosts
- Datei. In diesem Beispielamq
werden einem definierten host in den container.Von Docker Dokumentation:
InformationsquelleAutor der Antwort Alp
Nur Ihre container-ip, und verbinden Sie es aus einem anderen container:
InformationsquelleAutor der Antwort Valentin Kantor
Wenn Sie-p angeben, 5672, Was docker tut, ist, einen neuen port, wie 49xxx auf dem host und leitet Sie an port 5672 des Containers.
sollten Sie in der Lage sein zu sehen, welche port-Weiterleitung auf den container ausgeführt:
Von dort aus können Sie eine direkte Verbindung zu dem host-IP-Adresse etwa so:
Können Sie nicht localhost verwenden, da jeder container ist im Grunde seine eigene localhost.
InformationsquelleAutor der Antwort amattn
Ich denke, Sie können keine Verbindung zu einem anderen container direkt durch design - das wäre in der Verantwortung der Gastgeber. Ein Beispiel von Austausch von Daten zwischen Containern mit Volumen ist hier gegeben http://docs.docker.io/en/latest/examples/couchdb_data_volumes/, aber ich glaube nicht, dass es das ist, was Sie suchen.
Vor kurzem fand ich heraus, über https://github.com/toscanini/maestro - das kann Ihre Bedürfnisse anzupassen. Lassen Sie uns wissen, wenn es klappt :), ich habe es nicht versucht mich noch.
Bearbeiten. Beachten Sie, dass Sie Lesen können hier, dass native "Container-Verkabelung und service discovery" ist auf der roadmap. Ich denke, 7.0 oder 8.0 auf dem neuesten Stand ist.
InformationsquelleAutor der Antwort qkrijger
Dies ist derzeit auf die 0,8 Fahrplan:
https://github.com/dotcloud/docker/issues/1143
InformationsquelleAutor der Antwort Allard Hoeve
Können Sie das Andockfenster Beispiel IP mit...
Aber das ist nicht sehr nützlich.
Können Sie Rohrleitungen, um ein privates Netzwerk zwischen docker-Container.
InformationsquelleAutor der Antwort chanux