Docker for mac - 无法从容器内

时间:2016-09-12 07:30:15

标签: ruby mongodb docker

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

  

Mongo :: ConnectionFailure:无法使用种子连接到副本集   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 同步'   /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 阻止连接'   /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 连接'   /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 设定'   /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并且成功了。从技术上讲它应该有效,但它不是。还有其他人遇到过类似情况吗?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

使用此方法,而不是使用macs host-ip(不可移植(不同的开发人员,不同的网络,如office / home)),使用此方法:https://gist.github.com/EugenMayer/3019516e5a3b3a01b6eac88190327e7c

所以你在你的mac上为你的loopback设备创建了一个alias-ip。然后,不要连接到容器中的127.0.0.1,而是使用10.254.254.254。

一个非常类似的问题,在这里更简单的回答https://stackoverflow.com/a/38985163/3625317