mac的docker:从另一个容器访问mongo

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mac的docker:从另一个容器访问mongo相关的知识,希望对你有一定的参考价值。

我有两个容器,一个是用于node.js代码的容器,另一个是用于mongodb数据库的容器。我将network_mode设置为两个容器的主机,由于某些网络限制,我不得不这样做。此外,两个容器都在同一台物理Mac计算机上。如果我想从node.js容器连接到mongodb数据库,我的连接字符串应该是什么样子。我知道,如果使用桥接网络,则将mongo容器的名称用作主机名。但是,在这种情况下,我尝试了localhost,0.0.0.0、127.0.0.1等,但都无法正常工作。在这种情况下,我将如何访问mongdb数据库?

答案

使用docker的最简单方法是检查并找到docker容器的IP,然后登录/连接到它。或者,您可以使用VS Code(https://code.visualstudio.com/download)并安装docker插件

查找正在运行的Docker容器和容器ID

docker ps

获取特定于Docker的Docker容器的详细信息

docker inspect <CONTAINER ID> | grep "IPAddress"

示例

    "SecondaryIPAddresses": null,
    "IPAddress": "172.17.0.2",
            "IPAddress": "172.17.0.2",

VS Code docker插件enter image description here

另一答案

根据this github issuenetwork_mode在Mac的Docker上不起作用。

关于我链接的问题的评论did说,如果您需要从容器访问主机上的服务,则可以使用host.docker.internal,但这可能与您的用例无关。

以上是关于mac的docker:从另一个容器访问mongo的主要内容,如果未能解决你的问题,请参考以下文章

如何从另一个容器访问在 Docker 容器中运行的 Mopidy

从另一个 Docker 访问一个 Docker 中的 MariaDB

从另一个容器调用 docker 容器

无法从另一个容器连接到 mongodb docker 容器

从另一个容器(Docker)连接到 postgresql 容器

在mac上使用docker部署Mongo数据库