无法在 docker 个容器中启动 H2o 集群,因为它无法绑定外部或主机 ip

Fail to start H2o cluster in docker containers because it can not bind external or host ip

现在我们尝试使用H2o构建训练集群。 运行ning java -jar ./h2o.jar 很容易使用,我们可以使用包含多个 ip 和端口的简单 flatfile.txt 设置集群。

但是我们发现无法在docker 个容器中设置h2o 集群。虽然我们可以启动多个容器到 运行 java -jar ./h2o.jar 并添加准备好的 flatfile.txt,但 h2o 进程会尝试绑定本地(容器的 eth0)ip,这与 [=12] 中的不同=].我们可以 java -jar ./h2o.jar -ip $ip 设置 flatfile.txt 中的那个,但是没有这个 "external" ip.

h2o 实例无法 运行

如果您使用"docker run --network=host ...",它将起作用。

查看我对类似问题的回复 here。我描述了如何使用平面文件和 docker swarm 启动 H2O 集群。基本上,在启动 H2O 之前,您必须在每个服务中 运行 一个脚本,以确定集群的正确 IP 地址。这是因为 docker 为每个服务分配了两个 IP。 flatfile 需要为每个集群成员使用 $HOSTNAME IP,这很难提前确定。