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.
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:
%Vor%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.
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.
Tags und Links node.js mongodb docker mongoose dockerfile