Docker - oracle.kv.FaultException:无法联系任何RepNode

时间:2016-10-20 12:32:23

标签: java docker oracle-nosql

我是Docker和nosql的新手,我在我的Windows机器上创建了一个Oracle Linux VM(ipAddr 192.168.10.2)。

此外,我为kvlite创建了docker容器(在此VM上)并运行我的nosql-container,如下所示:

$ docker run --name nosql-container -p 5000:5000 -d kvlite:latest

后面是以下命令:

$ docker exec -it nosql-container bash

#java -jar lib / kvcli.jar -host localhost -port 5000

KV-> connect store -host localhost -port 5000 -name kvstore;

直到这里工作正常,我相信我的kvlite Docker容器运行良好。

现在我需要从我的Windows机器创建一个客户端Java程序来访问这个kvlite(在VM上的docker容器中运行) 为了完成,我下载了 kvclient.jar 文件并将其放入我的类路径中。

下面的Java代码片段:

KVStore store = KVStoreFactory.getStore(new KVStoreConfig("kvstore", "192.168.10.2:5000"));

这会引发异常:

oracle.kv.FaultException:无法联系任何RepNode:[192.168.10.2:5000](12.1.4.0.9)

...

引起:java.rmi.UnknownHostException:未知主机:ecfe59938ea4;嵌套异常是:

提前获得任何帮助。

1 个答案:

答案 0 :(得分:0)

我在运行nosql-container

时添加了一个param --net = host解决了这个问题
$ docker run --name nosql-container --net=host -p 5000:5000 -d kvlite:latest

现在,您可以使用Java客户端代码中的VM主机名代替IPAddress来访问kvlite DB。

KVStore store = KVStoreFactory.getStore(new KVStoreConfig("kvstore", "VMHostname:5000"));