我无法在我的 docker 项目中输入 mongo db cli



我正在学习docker,在我的项目中,我无法使用以下命令进入mongo数据库:

mongo -u "username" -p "mypassword"

它给了我一个错误:

bash: mongo: command not found

我不确定问题是什么。我已经安装了mongo数据库的社区版,我也尝试了不同的终端,但我无法进入数据库。

有什么建议吗?

提前感谢!

我想,您已经完成了以下操作:按照前面所写的那样创建docker-compose.yml。启动docker compose up。这将在您的系统上启动一个容器,其中安装了mongodb;正常的";此容器外部的系统。(你可以把它想象成一台虚拟机,尽管它实际上并不相同。(因此,如果你没有在本地主机系统上安装mongodb,你遇到的错误是可以解释的。

如果您想访问容器中运行的mongodb,有两种可能性:

1.从容器外部(这是更常见的用例(

你还必须在你的普通电脑上安装mongo(或者你想访问数据库的任何地方(。然后您将发布mongo 127.0.0.1:30003000很重要,正如您的docker-compose.yml所说,mongo正在侦听端口3000。请注意,在这之前,您可能必须调整您的网络配置,尤其是在其他电脑上,因为127.0.0.1不正确。

2.从集装箱内

一旦您的容器启动,您还可以在其中执行一个命令,如下所示:docker exec -it ${container_id} /bin/bash。您必须事先使用类似docker-compose ps -q的方法来查找容器的ID。这将在容器内启动bash shell;"连接";(如果容器中没有安装/bin/bash,这将不起作用。请尝试例如/bin/sh。(现在您的终端将在容器中,并且可以使用那里的命令。因此,要返回到您的本地电脑,请不要忘记发出exit

结论

IMHO,关键的一点是,你在前面工作的物理PC和在里面运行的容器几乎是完全不同的系统,只通过docker守护进程和一些虚拟网络访问连接。您必须记住这一点,并决定要在容器内做什么/运行什么,以及在主机外部做什么。

这里有一个可能对你有所帮助的进一步参考资料。这个答案是关于如何以自动化的方式找到您的容器ID。(假设您只运行一个容器!(

最新更新