MongoDB docker容器不显示数据库

时间:2019-06-10 22:23:22

标签: mongodb docker

我在此博客之后设置了MongoDB docker容器: https://medium.com/@kristaps.strals/docker-mongodb-net-core-a-good-time-e21f1acb4b7b

当我运行.net core应用程序时,保存一个待办事项,我设法对其进行查询,似乎一切正常(创建了todo集合,创建了db,保存了todo)。但是,当我使用“ docker exec -it mongodb bash”访问mongo db容器并尝试使用“ show dbs”获取dbs时,它将检索到空列表。此外,此docker compose启动了mongo express容器,该容器也未列出新的数据库和集合。你知道会是什么问题吗?

欢呼

1 个答案:

答案 0 :(得分:8)

您可能已启用身份验证(用户名和密码)。这意味着您必须先在外壳中进行身份验证,然后才能列出数据库。

这是可完成的操作(为Google员工添加了额外步骤):

    $ docker ps // list images

    IMAGE
    my-mongodb-container

$ docker exec -it my-mongodb-container bash

// -it is a flag for 'interactive terminal', bash is the shell we'll use

root@example:/# mongo 
// enter mongodb shell

> use admin 
// switched to db admin

> db.auth("username", "password");
// 1

> show dbs
admin  0.000GB
config 0.000GB
local  0.000GB
mydb   0.000GB

> use mydb
// switched to db mydb

您现在可以在mongodb实例中运行mongodb shell命令-这样“显示集合”之类的东西就可以使用。

希望对某人有帮助!这些东西有时非常不透明:)