verbindet sich mit dem lokalen mongodb aus dem Andock-Container

10

Ich habe einen lokalen mongoDB Server, der auf mongodb: //127.0.0.1: 27017 läuft. Mein DB-Name ist localv2 . Ich habe eine Knoten / Express-App mit der Dockerfile wie folgt:

%Vor%

Die Datei server.js hat eine Verbindung zum lokalen mongodb mit dem folgenden Code:

%Vor%

Dies funktioniert nicht, wenn ich einen Container aus dem mit der obigen Dockerdatei erstellten Bild hochfahre. Ich habe irgendwo gelesen, dass Docker ein VLAN mit einer gatway-IP-Adresse erstellt. Wenn ich% Co_de% mein Container, meine Gateway-IP-Adresse: 172.17.0.1.

Auch wenn die mongodb-Verbindung zu

geändert wird %Vor%

und das Image neu aufbauen und einen neuen Container starten, bekomme ich immer noch den Fehler:

%Vor%

Befehl zum Ausführen des Containers: docker inspect

Bitte helfen Sie.

    
chaudharyp 05.05.2017, 08:32
quelle

2 Antworten

9

Hinzufügen von @ vlad-holubiev als Antwort hier, weil es für mich funktioniert hat und den Benutzern hilft, es zu finden.

Verwenden Sie die Netzwerk-Host-Option für den Andock-Vorgang , wie in der Dokumentation angegeben:

  

Wenn das Netzwerk auf einen Host eingestellt ist, teilt sich ein Container das Netzwerk des Hosts   Stack und alle Schnittstellen vom Host zur Verfügung stehen   Container. Der Hostname des Containers entspricht dem Hostnamen auf dem   Host-System.

%Vor%     
elpddev 12.06.2017 14:27
quelle
3

Ein Andock-Container ist ein von Ihrem Computer getrennter Container Du kannst also keine Verbindung zu deinem localhost herstellen.
Sie sollten den Mongo-Server auf einem Container ausführen und die Verbindung mit dem Image-Namen herstellen.

%Vor%     
Daniel Taub 05.05.2017 22:44
quelle