尝试使用 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
1 回答
千万里不及你
TA贡献1784条经验 获得超9个赞
问题似乎是您正在尝试连接到 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 外部访问容器。
- 1 回答
- 0 关注
- 246 浏览
添加回答
举报
0/150
提交
取消