我正在尝试使用与其交互的 python 应用程序运行数据库。我使用以下命令运行数据库docker-compose.yml:
version: "3.8"
services:
flask_app:
build: ./flask_app
container_name: flask_app
ports:
- "5000:5000"
mongo:
image: mongo:latest
container_name: mongodb
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=pass
volumes:
- /data/db:/data/db
mongo-express:
image: mongo-express:latest
container_name: mongo_express
environment:
- ME_CONFIG_MONGODB_SERVER=mongo
- ME_CONFIG_MONGODB_PORT=27017
- ME_CONFIG_MONGODB_ENABLE_ADMIN=true
- ME_CONFIG_MONGODB_AUTH_DATABASE=admin
- ME_CONFIG_MONGODB_ADMINUSERNAME=root
- ME_CONFIG_MONGODB_ADMINPASSWORD=pass
# Uncomment if a secure login via browser is required
# - ME_CONFIG_BASICAUTH_USERNAME=root
# - ME_CONFIG_BASICAUTH_PASSWORD=pass
links:
- mongo
ports:
- 8081:8081
我可以在localhost:8081访问数据库:
pymongo考虑到/data/db卷从主机映射到容器,我希望使用 访问相同的数据库。
然而,如下所示,我访问另一个数据库(一个带有“todos”、“test_db”和“db”但没有“config”的数据库)[如果这改变了某些内容,这个python在主机上运行,而不是在应用程序容器中运行]:
In [1]: from pymongo import MongoClient; client = MongoClient(host='localhost', port=27017)
In [2]: client.list_database_names()
Out[2]: ['admin', 'local', 'db', 'todos', 'test_db']
我在这里缺少什么?为什么有2个DB?
泛舟湖上清波郎朗
相关分类