Mongo-Express:首次连接时无法连接到服务器[mongo:27017]

时间:2019-05-22 22:54:47

标签: mongodb docker docker-compose

我正在尝试使用mongo运行最简单的mongo-expressdocker-compose容器。我遇到了很多错误,这些错误将在以后解释。

我尝试了以下docker-compose配置:

1。

version: '2'
services:
    mongo:
        image: mongo:latest
    mongo-express:
        image: mongo-express:latest
        ports:
            - 8082:8081

2。

version: '2'

services: 
  mongo:
    image: mongo:latest
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: root
    ports:
      - 27017:27017
    volumes:
      - db-data:/data/db
      - mongo-config:/data/configdb

  mongo-express:
    image: mongo-express
    restart: always
    ports:
      - 8081:8081
volumes: 
  db-data:
  mongo-config:

等。但是,每当我执行docker-compose -f docker-compose.yml up时,它们都具有以下常见错误:

mongo-express_1  | Mongo Express server listening at http://0.0.0.0:8081
mongo-express_1  | Server is open to allow connections from anyone (0.0.0.0)
mongo-express_1  | basicAuth credentials are "admin:pass", it is recommended you change this in your config.js!
mongo-express_1  | 
mongo-express_1  | /node_modules/mongodb/lib/server.js:265
mongo-express_1  |         process.nextTick(function() { throw err; })
mongo-express_1  |                                       ^
mongo-express_1  | MongoError: failed to connect to server [mongo:27017] on first connect
mongo-express_1  |     at Pool.<anonymous> (/node_modules/mongodb-core/lib/topologies/server.js:326:35)
mongo-express_1  |     at emitOne (events.js:116:13)
mongo-express_1  |     at Pool.emit (events.js:211:7)
mongo-express_1  |     at Connection.<anonymous> (/node_modules/mongodb-core/lib/connection/pool.js:270:12)
mongo-express_1  |     at Object.onceWrapper (events.js:317:30)
mongo-express_1  |     at emitTwo (events.js:126:13)
mongo-express_1  |     at Connection.emit (events.js:214:7)
mongo-express_1  |     at Socket.<anonymous> (/node_modules/mongodb-core/lib/connection/connection.js:175:49)
mongo-express_1  |     at Object.onceWrapper (events.js:315:30)
mongo-express_1  |     at emitOne (events.js:116:13)

我已经在整个Internet和github存储库中搜索了此问题,并尝试了其他解决方案,但没有一个能正常工作。

link1 | link2 | link3 | link4 |等

2 个答案:

答案 0 :(得分:0)

首先我运行了docker stop $(docker ps -a -q),然后将docker-compose.yml文件更改为以下内容:

version: '2'
services:
  mongo:
    image: mongo:3.4
    container_name: mongo
    ports:
      - '27017:27017'
    volumes: 
      - '/data/configdb:/data/configdb'
      - '/data/db:/data/db'
  mongo-express:
    image: mongo-express:0.49.0
    container_name: mongo_express
    depends_on:
      - 'mongo'
    ports:
      - '5050:8081'
    environment:
      - 'ME_CONFIG_OPTIONS_EDITORTHEME=ambiance'

答案 1 :(得分:0)

docker run -d 
-p 8081:8081 
--name mongo-express 
-e ME_CONFIG_MONGODB_ADMINUSERNAME=**<username>** 
-e ME_CONFIG_MONGODB_ADMINPASSWORD=**<password>** 
--net **<mongo network name>** 
-e ME_CONFIG_MONGODB_SERVER=**<mongodb container name>** 
-e ME_CONFIG_OPTIONS_EDITORTHEME=ambiance 
mongo-express