2017-01-24 3 views
0

Ich habe einen Andock-Container, in dem Rails und mongoDB ausgeführt werden. Ich habe die Mongo-Konfiguration so eingestellt, dass ein Unix-Socket für die Verbindung verwendet wird, da die einzige Ressource, die wirklich eine Verbindung zu ihr herstellen muss (die Rails-App), im Container ausgeführt wird.
Jedes Mal, wenn ich versuche, die mongo Schale zu verbinden bekomme ich diesen Fehler:Mit mongoDB-Socket in Docker verbinden

[main] Error: network error while attempting to run command 'isMaster' on host '127.0.0.1:27017'

ich meine mongoDB Konfiguration wie diese eingerichtet haben:

#mongod.conf - 3.4 
    storage: 
     dbPath: "/var/lib/mongodb" 
     directoryPerDB: true 
     journal: 
      enabled: true 
    systemLog: 
     destination: file 
     path: "/var/log/mongodb/mongodb.log" 
     logAppend: true 
     timeStampFormat: iso8601-utc 
    processManagement: 
     fork: true 
    net: 
     bindIp: 127.0.0.1 
     port: 27017 
     wireObjectCheck: false 
     unixDomainSocket: 
      enabled: true 
    net: 
     ssl: 
     mode: requireSSL 
     PEMKeyFile: /etc/ssl/certs/db/mongodb.pem 


    security: 
     authorization: enabled 

hat sich zu diesem Thema jemand anders laufen als auch ? Gibt es eine Best Practice für die MongoDB-Konfiguration in Docker-Containern?

Antwort

1

Sie müssen möglicherweise angeben, welches Docker-Image Sie verwenden, und wenn es kein mongozentrischer Container ist, wie wird Mongo installiert und gestartet?

Wenn Sie nicht das offizielle Bild mit hier: https://hub.docker.com/_/mongo/ Sie könnten versuchen, Ihre Anwendung, um es für Debugging-Zwecke Zugabe

z.B.

Auch sollten Sie den Mongo-Service nicht als Best Practice in Ihrem Anwendungscontainer haben. Stattdessen, feuern Sie die offizielle und verwenden Sie es aus Ihrem anderen Container, hier ist ein Docker-compose.yml aus einem Projekt, das ich habe, dass Mongo darin hat:

version: '2' 
services: 
    db: 
    image: mongo 
    ports: 
     - "27017:27017" 
    web: 
    build: . 
    command: npm start 
    volumes: 
     - .:/meanshop 
    ports: 
     - "7000:7000" 
    depends_on: 
     - db 
    environment: 
     PORT: 7000 
     MONGODB_DB_URL: "mongodb://db/meanshop" 
Verwandte Themen