ruby - Docker for mac - 无法从容器内部连接到主机上运行的 mongo 副本集

标签 ruby mongodb docker

我正在运行 docker for mac 1.12.0 并尝试连接到在我的 mac 上运行的 mongo 副本集。我在 ruby​​ 中使用 mongo gem 进行连接,并且在执行 docker run 时还提到了 --net="host" 选项。我收到这样的错误:

Mongo::ConnectionFailure: Cannot connect to a replica set using seeds 127.0.0.1:27017, 127.0.0.1:27018 /home/ubuntu/.rvm/gems/ruby-2.1.8@automator/gems/mongo-1.12.5/lib/mongo/connection/pool_manager.rb:272:in get_valid_seed_node' /home/ubuntu/.rvm/gems/ruby-2.1.8@automator/gems/mongo-1.12.5/lib/mongo/connection/pool_manager.rb:178:in connect_to_members' /home/ubuntu/.rvm/gems/ruby-2.1.8@automator/gems/mongo-1.12.5/lib/mongo/connection/pool_manager.rb:70:in block in connect' /home/ubuntu/.rvm/gems/ruby-2.1.8@automator/gems/mongo-1.12.5/lib/mongo/connection/pool_manager.rb:65:in synchronize' /home/ubuntu/.rvm/gems/ruby-2.1.8@automator/gems/mongo-1.12.5/lib/mongo/connection/pool_manager.rb:65:in connect' /home/ubuntu/.rvm/gems/ruby-2.1.8@automator/gems/mongo-1.12.5/lib/mongo/mongo_replica_set_client.rb:210:in block in connect' /home/ubuntu/.rvm/gems/ruby-2.1.8@automator/gems/mongo-1.12.5/lib/mongo/mongo_replica_set_client.rb:199:in synchronize' /home/ubuntu/.rvm/gems/ruby-2.1.8@automator/gems/mongo-1.12.5/lib/mongo/mongo_replica_set_client.rb:199:in connect' /home/ubuntu/.rvm/gems/ruby-2.1.8@automator/gems/mongo-1.12.5/lib/mongo/mongo_client.rb:656:in setup' /home/ubuntu/.rvm/gems/ruby-2.1.8@automator/gems/mongo-1.12.5/lib/mongo/mongo_replica_set_client.rb:524:in setup' /home/ubuntu/.rvm/gems/ruby-2.1.8@automator/gems/mongo-1.12.5/lib/mongo/mongo_replica_set_client.rb:176:in initialize

我以守护进程模式运行容器并尝试 ping 我的主机 ip,它成功了。所以从技术上讲,它应该可以工作,但事实并非如此。还有其他人遇到过类似情况吗?

最佳答案

根据您收到的错误,您的应用程序正在尝试在本地连接 MongoDB (127.0.0.1),这意味着在 docker 容器内。获取您的 mac 主机(运行 MongoDB 的地方)的 IP 地址并将其设置在您的应用程序配置中。

考虑在 docker compose 的帮助下在另一个 docker 容器中运行 MongoDB .

关于ruby - Docker for mac - 无法从容器内部连接到主机上运行的 mongo 副本集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39445321/

相关文章:

java - Mongo 模板在 Spring.Mongodb 中按日期间隔聚合

mysql - MongoDB 的论坛模型

database - 确定数据结构

docker - 如何调试dist/不在Docker Cloud Build上生成?

ruby - 为什么 sqrt() 不是 Numeric 上的方法?

ruby-on-rails - Rails 5.1 中的 skip_before_action 回调和继承

ruby-on-rails - rails 周期性任务

ruby-on-rails - rake 分贝 :seed fails with 'don' t know how to build task db. 种子'

maven - Maven 打包类型 `docker` 是否存在?

java - 运行 Docker Maven 容器