mongodb - 如何使用 docker-compose 设置带有 pymonogo 应用程序的 mongodb?

标签 mongodb docker docker-compose pymongo

我正在尝试使用 docker-composer 使用 mongodb 服务器启动 python 应用程序,但出现以下错误:
pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 111] Connection refused
我真的不明白我的设置中缺少什么:

version: '3.6'
services:
  web:
    build: .
    ports:
     - "5000:5000"
     - "9000:9000"
    links:
      - db
  db:
    image: mongo:latest
    container_name: "mongodb"
    ports:
        - 27017:27017
    command: mongod --smallfiles # --quiet    

  redis:
    image: "redis:alpine"

我不知道为什么我无法连接到似乎已启动的服务器 ( docker ps ):
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                            NAMES
fb5a00bb8867        composedir_web      "python app.py"          20 seconds ago      Up 19 seconds       0.0.0.0:5000->5000/tcp, 0.0.0.0:9000->9000/tcp   composedir_web_1
56aeae245ad5        mongo:latest        "docker-entrypoint.s…"   14 minutes ago      Up 20 seconds       0.0.0.0:27017->27017/tcp                         mongodb
51c64650bab8        redis:alpine        "docker-entrypoint.s…"   14 minutes ago      Up 21 seconds       6379/tcp                                         composedir_red

最佳答案

您需要配置python应用程序以连接db:27017上的mongo而不是 localhost:27017

关于mongodb - 如何使用 docker-compose 设置带有 pymonogo 应用程序的 mongodb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50362363/

相关文章:

ruby-on-rails - MS Azure 上的 Bitnami Mongodb ReplicaSet 设置问题 - 辅助节点延迟响应

javascript - 使用 Mongoose 更新 Node.js 中 find() 方法返回的结果

Dockerfile CMD 不接受变量替换

运行 Hazelcast 集群的 Docker swarm 模式

mongodb - 如果使用 mongodb 的数组中不存在值,则更新的一项操作

javascript - 需要建议 : How to properly connect React to MongoDB

asp.net - Microsoft/aspnet中存在web.config时出现错误500:4.6.2 Windows容器

networking - 多个docker compose容器-单个ip

docker - docker-compose问题:尝试创建/装入卷时权限被拒绝

docker - 如何将镜像创建的卷与 docker-compose 指定的命名卷链接起来?