Docker for mac – 无法连接到容器内主机上运行的mongo副本集
我运行docker为Mac 1.12.0,并试图连接到我的Mac上运行的mongo副本集。 我正在使用ruby的mongo gem连接,并且在执行--net="host"
也提到了--net="host"
选项。 我得到这样的错误:
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:70get_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
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:inconnect' /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:synchronize' /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:524setup' /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:initialize
我运行在守护进程模式的容器,并试图ping我的主机IP,它是成功的。 所以技术上它应该工作,但事实并非如此。 其他人面临类似的情况?
根据错误,您的应用程序试图在本地连接MongoDB( 127.0.0.1
),这意味着在Docker容器中。 获取您的mac主机的IP地址(MongoDB运行的地方),并将其设置在您的应用程序configuration中。
考虑在docker compose
帮助下在另一个docker容器中运行MongoDB。
而不是使用你的MAC主机IP,这将不是可移植的(不同的开发人员,像办公室/家庭不同的networking),使用这种方法: https : //gist.github.com/EugenMayer/3019516e5a3b3a01b6eac88190327e7c
所以你在你的mac上为你的环回设备创build一个别名ip。 然后,而不是连接到您的容器中的127.0.0.1,使用10.254.254.254。
一个非常类似的问题,在这里更简单的回答https://stackoverflow.com/a/38985163/3625317
- 一旦在Docker容器内构buildRust可执行文件,我该如何获取Rust可执行文件?
- 如何将命令行parameter passing给在docker中运行的python脚本
- nodejs服务器无法在同一个Docker-Compose yml文件中链接Redis和MongoDB
- AWS授权错误
- 如果我们运行具有.sh文件的dockerfile,“docker build”和“docker run”之间的区别
- Docker cp错误:未指定path
- “使用的内存”度量标准:转到工具pprof与docker统计信息
- Kafka无法parsingZookeper的DNS名称
- Dockerfiles在容器中运行AEM子系统