以下示例:https://docs.docker.com/engine/examples/mongodb/
当尝试连接到mongoDB时:mongo ip:27017
(其中ip是来自boot 2docker ip的名称)+来自docker ps的端口号:
27017/传输协议
或使用-P
0.0.0.0:49155-〉27017/tcp
无论哪种方式,我都会得到以下错误:
警告:无法连接到ip:27017,原因:errno:61连接被拒绝
错误:无法连接到服务器ip:27017(ip),连接尝试在src/mongo/shell/mongo.js失败:148异常:连接失败
5条答案
按热度按时间bvk5enib1#
如果您指定了正确的端口,但仍然无法连接到在docker中运行的mongodb(像我一样),请确保您在连接URL中使用了服务名称(或容器名称),例如
mongodb://mongodb_service:27017/mydb
,这是在docker-compose.yml
中定义的:我使用的是
hostname
值,这是不正确的。你可以通过查看Aliases
部分的docker inspect mongodb_service
来验证这一点。yuvru6vn2#
我使用的是端口
27017
而不是49155
(doh,端口转发)感谢Zeisss。
w80xi6nr3#
如果您使用的是Mac并使用Docker Machine,请执行以下操作:
wbgh16ku4#
假设你的mongodb在一个容器中,其他容器要连接到它,它们都需要在同一个网络上。
要让mongodb和其他容器(想要连接它),使用下面的命令创建一个新的网络
然后使用--net标志运行mongodb和其他容器
现在,您应该能够从这些容器中使用给定的别名连接mongodb
dy2hfwbg5#
应该是服务定义的数据库URI,如下所示(不是
mongodb://localhost
或mongodb://IP
)。使用服务名称或容器名称。