我正在使用Flask和MongoDB inside docker。我的日志显示一切正常,但我无法获取和发布数据,甚至localhost:5000也不能工作。
这是我的Docker-compose文件
version: '3.4'
services:
flask_example:
build: .
ports:
- '5000:5000'
links:
- mongodb
mongodb:
image: mongo:latest
在我的Flask应用程序中
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
发布于 2018-06-27 04:07:53
解决了它
在production / docker中,它必须如下所示
if __name__ == '__main__':
app.run(host='0.0.0.0',debug=True)
因此,不使用localhost:5000
,而使用0.0.0.0:5000
发布于 2018-06-26 23:22:47
我在这里看到的是在不同的容器中供应的Flask和mongo。我认为你应该用主机名映射来修复链接部分:
links:
- mongodb:mongodb
https://stackoverflow.com/questions/51046234
复制相似问题