You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker环境下Ruby脚本容器与MongoDB容器连接失败求助

问题原因

每个Docker容器拥有独立的网络命名空间,你的Ruby脚本容器中127.0.0.1指向的是脚本容器自身,而非MongoDB容器,因此会出现连接被拒绝的错误。

解决方案

1. 创建Docker自定义网络

自定义网络是Docker官方推荐的容器互联方式,支持容器间通过名称/别名解析:

docker network create mongo-ruby-net

2. 启动MongoDB容器并加入该网络

启动时指定网络和容器名称(后续脚本将通过这个名称连接):

docker run -d --name mongo-container --network mongo-ruby-net mongo

3. 修改Ruby脚本的数据库连接地址

将连接代码中的127.0.0.1替换为MongoDB容器的名称mongo-container:

Mongo::Client.new(['mongo-container:27017'])

4. 重新构建Ruby脚本镜像(若脚本有修改)

docker build -t my_ruby_script .

5. 启动Ruby脚本容器并加入同一网络

docker run --network mongo-ruby-net my_ruby_script

额外检查项

  • 确保MongoDB容器正常运行:执行docker ps查看mongo-container的状态为Up
  • 可通过docker logs mongo-container查看MongoDB启动日志,确认服务已就绪

内容的提问来源于stack exchange,提问作者JACKoJONS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 20:48:11