首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法从Docker中的Flask获取数据并将数据发布到MongoDB

无法从Docker中的Flask获取数据并将数据发布到MongoDB
EN

Stack Overflow用户
提问于 2018-06-26 23:12:17
回答 2查看 186关注 0票数 1

我正在使用Flask和MongoDB inside docker。我的日志显示一切正常,但我无法获取和发布数据,甚至localhost:5000也不能工作。

这是我的Docker-compose文件

代码语言:javascript
复制
version: '3.4'
services:
  flask_example:
    build: .
    ports:
      - '5000:5000'
    links:
      - mongodb
  mongodb:
    image: mongo:latest

在我的Flask应用程序中

代码语言:javascript
复制
app.config['MONGO_DBNAME'] = 'restdb'
app.config['MONGO_URI'] = 'mongodb://mongodb:27017/restdb'
mongo = PyMongo(app)

我正在获取日志,如下所示:

mongodb_1 | 2018-06-26T15:06:45.689+0000 I控制初始化并侦听MongoDB启动: pid=1 port=27017 dbpath=/ data/db 64位host=64a180c6c04e mongodb_1 | 2018-06-26T15:06:45.689+0000 I控制初始化并侦听数据库版本v3.6.5 mongodb_1 | 2018-06-26T15:06:45.689+0000 I控制初始化并侦听git版本: a20ecd3e3a174162052ff99913bc2ca 9a839d618 mongodb_1 | 2018-06-26T15:06:45.689+0000 I控制初始化并侦听OpenSSL版本: OpenSSL 1.0.1t 3 2016年5月| mongodb_1 | 2018-06-26T15:06:45.689+0000 i控制初始化和侦听分配器: tcmalloc mongodb_1 | 2018-06-26T15:06:45.689+0000 i控制初始化和侦听模块:无mongodb_1 | 2018-06-26T15:06:45.689+0000 i控制初始化和侦听构建环境: mongodb_1 | 2018-06-26T15:06:45.689+0000 i控制初始化和侦听远端模块: debian81 mongodb_1 |2018年6月26日T15:06:45.689+0000I控制初始化监听选项: x86_64 mongodb_1 | 2018-06-26T15:06:45.689+0000 I控制初始化监听target_arch: x86_64 mongodb_1 | 2018-06-26T15:06:45.689+0000 I控制初始化监听选项:{ net:{ bindIpAll: true }} mongodb_1 | 2018-06-26T15:06:45.690+0000 I存储初始化监听mongodb_1

|2018-06-26T15:06:45.690+0000I存储初始化并监听**警告:强烈建议通过WiredTiger存储引擎mongodb_1使用XFS文件系统|2018-06-26T15:06:45.690+0000I存储初始化并监听**参见http://dochub.mongodb.org/co re/prodnotes filesystem mongodb_1 |2018-06-26T15:06:45.690+0000I存储初始化并监听wiredtiger_open配置: create,cache_size=47 8M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),cache_cursors=false,statistics= =(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log=(wait= 0),verbose=(recovery_progress),mongodb_1 |2018年-06-26T15:06:46.604+0000I存储初始化并监听WiredTiger消息1530025606:604056,txn-recover:设置全局恢复时间戳:0 mongodb_1 |2018年-06-26T15:06:46.662+0000 I控制初始化并监听mongodb_1

|2018-06-26T15:06:46.662+0000I CONTROL is 46.662 **警告:数据库未开启访问控制。mongodb_1 | 2018-06-26T15:06:46.662+0000我控制初始化并监听**

对数据和配置的读写访问不受限制。mongodb_1 |2018-06-26T15:06-06-26T15:06:46.662+0000 i控制初始化并侦听mongodb_1 | 2018-06-26T15:06:46.663+0000 i存储初始化并侦听createCollection: admin.system.version,并提供UUID: cdebc7d3-958e-43db-b517-bcfdc59e92ce mongodb_1 | 2018-06-26T15:06:46.692+0000 i命令初始化并侦听将featureCompatibilityVersion设置为3.6 mongodb_1 | 2018-06-26T15:06:46.696+0000 i存储初始化并侦听createCollection:本地生成UUID的.startup_log : 5b6bb532-fde4-4156-bee9-e4bfa0ae55b7 mongodb_1 |2018年-06-26T15:06:46.731+0000I FTDC初始化并侦听初始化全时诊断数据captu re,目录为‘/ data /db/ mongodb_1’mongodb_1 |2018-06-26T15:06:46.731+0000I网络初始化侦听等待端口27017上的连接mongodb_1| 2018-06-26T15:06:47.028+0000 I网络侦听器连接已接受172.28.0.3:46594 #1 (1连接现已打开) flask_example_1 |* Serving Flask app "app“(惰性加载) flask_example_1 |*环境:生产flask_example_1 |警告:不要在生产环境中使用开发服务器。mongodb_1 |2018-06-26T15:06-06-26T15:06:47.030+46594 i网络conn1收到来自172.28.0.3的客户端元数据:0000 conn1:{驱动:{名称:"PyMongo",版本:"3.6.1“},操作系统:{类型:"Linux",名称:"Linux",架构:"x86_64",版本:"4.9.87-linuxkit-aufs”},平台:“WSGI3.6.5.final.0”} flask_example_1 |使用生产CPython服务器。flask_example_1 |*调试模式:在flask_example_1上|*在http://127.0.0.1:5000/上运行(按CTRL+C退出) flask_example_1 |* Restarting with stat mongodb_1 | 2018-06-26T15:06:47.283+0000 i网络监听器连接从172.28.0.3:46596 #2接受(2个连接现已打开) mongodb_1 | 2018-06-26T15:06:47.285+0000 i网络conn2收到来自172.28.0的客户端元数据.3:46596驱动程序:{ conn2:{ name:"PyMongo",版本:"3.6.1“},操作系统:{类型:"Linux",名称:"Linux",架构:"x86_64",版本:"4.9.87-linuxkit-aufs”},平台:"CPython 3.6.5.final.0“} flask_example_1 |*调试器启动!flask_example_1 |*调试器PIN码: 174-151-610

EN

回答 2

Stack Overflow用户

发布于 2018-06-27 04:07:53

解决了它

在production / docker中,它必须如下所示

代码语言:javascript
复制
if __name__ == '__main__':
    app.run(host='0.0.0.0',debug=True)

因此,不使用localhost:5000,而使用0.0.0.0:5000

票数 1
EN

Stack Overflow用户

发布于 2018-06-26 23:22:47

我在这里看到的是在不同的容器中供应的Flask和mongo。我认为你应该用主机名映射来修复链接部分:

代码语言:javascript
复制
links:
  - mongodb:mongodb
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51046234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档