我在 docker 容器中有 mongo db,我想连接在另一个容器上运行的应用程序
Posted
技术标签:
【中文标题】我在 docker 容器中有 mongo db,我想连接在另一个容器上运行的应用程序【英文标题】:I have mongo db in a docker container and I want to connect my app which is running on another container 【发布时间】: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
?两个都?分享给我们。
【参考方案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
来检索网络名称
【讨论】:
以上是关于我在 docker 容器中有 mongo db,我想连接在另一个容器上运行的应用程序的主要内容,如果未能解决你的问题,请参考以下文章