我在 docker hub / mongodb 上制作了这个 docker-compose 文件,然后我使用docker-compose up -d
非常标准的命令来启动容器。
# Use root/example as user/password credentials
version: '3.1'
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/
bf4a595a508d mongo-express "tini -- /docker-ent…" About an hour ago Up About an hour 0.0.0.0:8081->8081/tcp, :::8081->8081/tcp intake-app_mongo-express_1
b5fcc2d2386d mongo "docker-entrypoint.s…" About an hour ago Up About an hour 27017/tcp intake-app_mongo_1
现在我正在尝试将我的后端连接到它。
使用 postresql 它会像
postgresql://root:example@localhost:8081/db_name
mongo 会怎样?
PS:我可以在我的网络浏览器中通过 http://localhost:8081 连接到数据库,但我无法从命令行使用mongo
.
从官方 docker hub 页面:
您没有说明您从哪里连接以及如何连接。如果它是另一个容器,那么您可以直接使用该端口,否则您需要先公开它。
至于连接字符串,一般来自官方文档:
您还可以使用
mongo-express
用于获取上述详细信息的容器或从 docker hub README 获取详细信息。所以在你的情况下:如果您的客户端不在同一堆栈中的 docker 容器中,则需要从第一个
mongodb
容器中公开端口 27017: