Docker - oracle.kv.FaultException: не удалось связаться с любым RepNode

Я новичок в Docker и nosql, я создал виртуальную машину Oracle Linux (ipAddr 192.168.10.2) на моей машине с Windows.

Далее я создал Docker-контейнер (на этой виртуальной машине) для kvlite и запустил мой nosql-контейнер, как показано ниже:

$ docker run --name nosql-container -p 5000: 5000 -d kvlite: последний

следуют следующие команды:

$ docker exec -it nosql-container bash

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

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

До сих пор это работает нормально, и я считаю, что мой контейнер Docker для kvlite работает и работает нормально.

Теперь мне нужно создать клиентскую Java-программу на моем компьютере с Windows для доступа к этому kvlite (запущенному в 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 ответ

Я решил проблему, добавив параметр --net=host при запуске nosql-container

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

Теперь вместо IPAddress вы можете использовать имя хоста виртуальной машины в коде клиента Java для доступа к базе данных kvlite.

KVStore store = KVStoreFactory.getStore(new KVStoreConfig("kvstore", "VMHostname:5000"));
Другие вопросы по тегам