猿问

Go mgo.v2 包错误:没有可访问的服务器

尝试使用 mgo.v2 包连接到 mongodb 服务器。我已经使用以下命令启动了服务器:


mongod --auth


我可以使用终端连接到服务器:


$ mongo -u "username" -p "password" --authenticationDatabase "db"


但是当我使用时:


mgo.Dial("mongodb://usernamer:password@127.0.0.1:27017/dbname")


它给我一个错误,说 {"error":"no reachable servers"}。


我的 docker-compose.yml 文件如下


version: "2"

services:

  todo:

    build:

      context: .

      dockerfile: todo/Dockerfile

    restart: always

    volumes:

    - .:/go/src/prac

    container_name: todo

    ports:

    - 8800:8081

  mongodb:

    command: mongod --auth

    container_name: mongodb

    image: mongo:latest

    ports:

    - 27017:27017


千巷猫影
浏览 247回答 1
1回答

千万里不及你

问题似乎是您正在尝试连接到 127.0.0.1。MongoDB 不在同一个容器中,所以这行不通。mgo.Dial("mongodb://usernamer:password@127.0.0.1:27017/dbname")您应该改为使用您选择的名称连接到您定义的 MongoDB 容器。mgo.Dial("mongodb://usernamer:password@mongodb:27017/dbname")Docker Compose 为您的容器创建一个网络,在其中它们可以使用您定义为主机名的名称相互访问。请注意,您不需要ports为容器定义相互访问;这些只需要从 Docker 外部访问容器。
随时随地看视频慕课网APP

相关分类

Go
我要回答