【问题标题】:I have mongo db in a docker container and I want to connect my app which is running on another container我在 docker 容器中有 mongo db,我想连接在另一个容器上运行的应用程序
【发布时间】:2021-06-22 11:15:54
【问题描述】:

我使用flask_mongoengine 连接到数据库 如下:

app.config['MONGODB_SETTINGS'] = {
'host': 'mongodb://mongo:27017/db_name'
    }

mongo 是容器的名称,但我收到以下错误:

"pymongo.errors.ServerSelectionTimeoutError: mongo:27017: [Errno -2] Name or service not known, Timeout: 30s, Topology Description: ]>"

【问题讨论】:

  • 分享你的命令来运行 docker 容器。为了解决你的问题,我应该模拟你的环境。
  • 如何运行容器? docker-compose? Dockerfile?两个都?分享给我们。

标签: docker flask-mongoengine


【解决方案1】:

这两个容器不在同一个网络上。

可能的解决方案:

  • 使用docker-compose,以便默认情况下它们在同一网络中运行
  • 使用docker run --network host mongo 来使用host network。注意:不适用于 Docker Desktop for Win 或 Mac
  • 手动将同一网络附加到两个容器。启动 mongo 和烧瓶应用程序后,docker network connect network-name flask-container-name。您可以通过检查 mongo 容器或docker network list 来检索网络名称

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 2014-04-20
    • 1970-01-01
    相关资源
    最近更新 更多