2016-05-26 7 views
1

Ich verwende den offiziellen Mongodb Docker Container. Ich mag die mongodb Container von meinem Host-Rechner auf Port anschließen 27017. ich den Behälter mit diesen Häfen liefSo ermöglichen Sie Remote-Verbindungen von Mongo Docker Container

ausgesetzt

-p 27017:27017

ich nicht in der Lage bin zu verbinden (Verbindung abgelehnt) und ich glaube, seine weil Die Mongo Conf-Datei ist nicht für Remote-Verbindungen konfiguriert. Wie kann ich es konfigurieren, um zu erlauben? Im offiziellen Container ist vi/nano nicht installiert, um das Bild zu ändern.

ich in der Lage bin zu verbinden von einem anderen Behälter MongoDB durch einen Link zu schaffen - dies ist jedoch nicht mein Wunsch

+0

Sie einen ** Docker ps auszuführen haben ** und sehen, ob die 27017-Port für den Behälter mit dem Docker Host weitergeleitet wird Sie zum Mongo Bild läuft auf . Der Eintrag ist wie folgt aussehen: ** PORTS 0.0.0.0:27017->27017/tcp** . Ich habe diesen genauen Befehl ausgeführt und musste nichts ändern, damit meine lokale Mongo Shell eine Verbindung zur dockerisierten db herstellen kann: ** docker run -p 27017: 27017 -v/opt/mongodb/db:/data/db --name mein-mongo-dev -d mongo ** . Könnten Sie die Ausgabe des Befehls ** docker logs your_container_name ** posten? – JJP

+0

Irgendwelche Updates dazu? – Hosni

Antwort

1

Bessere Lösungen für die Förderung:
https://blog.madisonhub.org/setting-up-a-mongodb-server-with-auth-on-docker/ https://docs.mongodb.com/v2.6/tutorial/add-user-administrator/

Meine Antwort auf eine andere Frage. How to enable authentication on MongoDB through Docker?

Hier ist, was ich für das gleiche Problem getan habe, und es hat funktioniert.

  1. die Mongo Docker Führen Beispiel auf dem Server

    docker run -d -p 27017:27017 -v ~/dataMongo:/data/db mongo 
    
  2. öffnen bash auf der Lauf Docker Instanz.

    docker ps 
    

    CONTAINER IDIMAGE COMMAND Status Angelegt PORTS NAMES

    b07599e429fb Mongo "Docker-Einstiegspunkt ..." 35 Minuten vor bis 35 Minuten 0.0.0.0:27017->27017/tcp musing_stallman

    docker exec -it b07599e429fb bash 
    [email protected]:/# 
    

    Reference- https://github.com/arunoda/meteor-up-legacy/wiki/Accessing-the-running-Mongodb-docker-container-from-command-line-on-EC2

  3. Geben Sie die Mongo-Shell ein, indem Sie mongo eingeben.

    [email protected]:/# mongo 
    
  4. Für dieses Beispiel werde ich einen Benutzer namens ian einrichten und geben, dass Benutzer & Schreibzugriff auf die Datenbank cool_db lesen.

    > use cool_db 
    
    > db.createUser({ 
        user: 'ian', 
        pwd: 'secretPassword', 
        roles: [{ role: 'readWrite', db:'cool_db'}] 
    }) 
    

    Referenz: https://ianlondon.github.io/blog/mongodb-auth/ (Erster Punkt nur)

  5. Beenden von mongod Shell und Bash.

  6. Führen Sie jetzt das Mongo-Andockfenster mit aktivierter Authentifizierung aus.

    docker run -d -p 27017:27017 -v ~/dataMongo:/data/db mongo mongod --auth 
    

    Referenz: How to enable authentication on MongoDB through Docker? (Usman Ismail Antwort auf diese Frage)

  7. ich in der Lage war, auf die Instanz zu verbinden und auf einem Google Cloud-Server von meinem lokalen Windows-Laptop mit dem folgenden Befehl.

    mongo <ip>:27017/cool_db -u ian -p secretPassword 
    

    Referenz: how can I connect to a remote mongo server from Mac OS terminal

+0

Sehr gute Sachen und natürlich funktioniert. Nichtsdestotrotz ist es wirklich erwähnenswert zu Beginn, dass es nicht mit der neuesten Mongo-Version funktioniert (3.6 ist die aktuellste Version, die für 3.4 funktioniert). Dies wird [hier] (https://stackoverflow.com/a/43441619/1906088) angemerkt. Es wird anderen helfen, ihre teure Zeit zu sparen. – pt12lol

Verwandte Themen