无法从本地计算机连接到Docker容器中的mongodb

时间:2019-02-01 13:10:07

标签: mongodb docker ubuntu

我正在运行带有mongodb的docker容器 someId mongo:3.6 "docker-entrypoint.s…" 11 days ago Up 11 days 0.0.0.0:27017->27017/tcp myMongo 当我尝试通过mongo localhost:27017从本地计算机连接到该mongo时,出现错误

error: couldn't connect to server localhost:27017, connection attempt failed: SocketException: Error connecting to localhost:27017 (127.0.0.1:27017) :: caused by :: Connection refused : connect@src/mongo/shell/mongo.js:328:13

我做错了什么?

更新 这是docker-compose ps

的输出

myMongo docker-entrypoint.sh --wir ... Up 0.0.0.0:27017->27017/tcp

Docker-compose文件

version: '2'

services:
  mongo:
    image: "mongo:3.6"
    container_name: myMongo
    ports:
     - "27017:27017"
    mem_limit: 2G

更新最终版本 重新启动我的ubuntu,重新启动docker-compose,一切按预期开始工作:mongo localhost现在可以工作了。怀疑ubuntu 18.04注销过程中存在问题,因为在此之前(以及在系统重新启动之前)我执行了几次注销/登录

1 个答案:

答案 0 :(得分:0)

启动docker mongo容器并从本地系统连接的步骤:

  1. 将docker docker-compose.yml文件创建为:

    version: '2'
    services:
      mongo:
        image: "mongo:3.6"
        container_name: myMongo
        ports:
         - "27017:27017"
        mem_limit: 2G
    
  2. 在搭建docker composer之前,您应该检查端口27017是否已被其他进程占用,如:

    netstat -an | grep 27017
    

    lsof -i -P ;// look for the port 27017
    

    如果端口号27017已被占用,则必须将docker compose中的端口号从27027更改为您想要的任何端口。

  3. 通过以下命令启动docker容器[无论docker-compose.yml文件所在的目录都必须位于同一目录中

    docker-compose up
    

    检查以下屏幕截图,了解如何创建和启动容器 enter image description here

  4. 现在,具有mongo db 3.6的docker容器已启动并正在运行,如果默认端口为27017,则打开新终端并以mongo的身份连接mongo shell,否则为mongo --port <whateverport number in docker compose>

    < / li>

希望这个解释对您以及其他人也有帮助:)