将普通Scala客户端连接到基本docker MongoDB 4.1.1容器?

将普通Scala客户端连接到基本docker MongoDB 4.1.1容器?,mongodb,scala,docker,mongodb-scala,Mongodb,Scala,Docker,Mongodb Scala,我按照上的说明创建了一个MongoDB docker容器,如下所示: $ docker run --name mongo -d mongo:4.0-xenial 接下来,我发现了IP地址: $ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mongo 172.17.0.2 然后,按照官方的MongoDB“”(说它是版本2.9;我使用的是“mongo-scala-driver_2.13”,

我按照上的说明创建了一个MongoDB docker容器,如下所示:

$ docker run --name mongo -d mongo:4.0-xenial
接下来,我发现了IP地址:

$ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mongo
172.17.0.2
然后,按照官方的MongoDB“”(说它是版本2.9;我使用的是“mongo-scala-driver_2.13”,版本4.1.1,找不到更新的版本;也许这就是问题所在(它改变了那么多吗?),但即使如此,仍然不确定要去哪里:

结果如何

2020-10-25 13:48:45 INFO  cluster:71 - No server chosen by WritableServerSelector from cluster description ClusterDescription{type=UNKNOWN, connectionMode=SINGLE, serverDescriptions=[ServerDescription{address=172.17.0.2:27017, type=UNKNOWN, state=CONNECTING}]}. Waiting for 30000 ms before timing out
Exception in thread "main" java.util.concurrent.TimeoutException: Future timed out after [35 seconds]
    at scala.concurrent.impl.Promise$DefaultPromise.tryAwait0(Promise.scala:212)
    at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:225)
    at scala.concurrent.Await$.$anonfun$result$1(package.scala:201)
    at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:62)
    at scala.concurrent.Await$.result(package.scala:124)
    at demo.Mongo$.delayedEndpoint$com$uplift$cleanup$Mongo$1(Mongo.scala:20)
这表明问题可能在于“mongod”不接受来自外部主机的连接,但当我将外壳放入容器时,我看到:

# ps uax 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mongodb      1  0.4  3.9 1110640 80808 ?       Ssl  18:38   0:26 mongod --bind_ip_all
。。。这似乎表明它应该允许所有IPV4地址的连接

似乎这应该是一个非常常见的用例(考虑到我认为我遵循了所有的“基本”/“官方”说明);我感到困惑的是,这是如此复杂,试图解决。

首先是更新的文档。第二,您可以使用shell或其他类似python的驱动程序连接到该容器吗?要确定问题出在代码上,而不是infra。第三,您确定容器的端口已暴露吗?通常,在启动容器时,您会添加如下内容
-p 27017:27017
# ps uax 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mongodb      1  0.4  3.9 1110640 80808 ?       Ssl  18:38   0:26 mongod --bind_ip_all