如何在运行的Docker镜像中访问数据库



Angular,Node.js,mongoose,mongo

在BE上,我创建了一个docker-compose.yml

version: "3"
services:
mongodb:
container_name: mongo_db
image: mongo:latest
ports:
- "27017:27017"
volumes:
- data:/data/db
volumes:
data:

这是我的数据库/index.js

const db = require("mongoose");
const User = require("../models/User");
const dotenv = require("dotenv");
dotenv.config();
db.connect(
process.env.DB_CONNECT, // mongodb://localhost:27017/playground
{ useNewUrlParser: true },
{ useUnifiedTopology: true },
{ useCreateIndex: true }
)
.then(() => console.log("connnected to db!"))
.catch((err) => console.error(err));

当我跑";码头工人组成";在终端我可以看到创建的数据库,我可以看到映像正在运行。我打开我的Docker for Windows应用程序,看到那里有我的图像。

现在我为User创建了一个数据输入控制器在邮差中,我可以从图像的用户表中检索所有实体

我的问题是如何直接在图像中找到那个表?

打开Power Shell窗口

显示所有正在运行的容器:docker ps

找到你正在运行的容器(在我的例子中:"mongo_db"(

在bash中打开容器,如下所示:

docker exec -it mongo_db bash 
mongo             // opens mongo
show dbs          // shows all available databases (default: admin, config, local)
use playground    // this is my (see database/index.js file above)
show collections  // displays my users Table
db.users.find().pretty()  // displays all entities from the table

最新更新