Can';t从带有gremlin控制台的docker容器使用Janusgraph(Berkeleyje/Lucern)连接到docker容器
目标:我想建立一个图形数据库,并最终从内置在Nodejs应用程序中的一组静态遍历访问数据 中间目标1:作为一个学习练习,我最初将在本地机器上的docker容器中使用gremlin控制台,而不是使用Nodejs应用程序。-我正在使用docker容器Can';t从带有gremlin控制台的docker容器使用Janusgraph(Berkeleyje/Lucern)连接到docker容器,docker,janusgraph,gremlin-server,Docker,Janusgraph,Gremlin Server,目标:我想建立一个图形数据库,并最终从内置在Nodejs应用程序中的一组静态遍历访问数据 中间目标1:作为一个学习练习,我最初将在本地机器上的docker容器中使用gremlin控制台,而不是使用Nodejs应用程序。-我正在使用docker容器tinkerpop/gremlin控制台:最新版本 中间目标2:在我所在组织的远程服务器上的虚拟机上的docker容器中运行Janusgraph(Berkeleyje/Lucern/gremlin服务器)(我不想要任何模糊的建议)-我正在使用docker
tinkerpop/gremlin控制台:最新版本
中间目标2:在我所在组织的远程服务器上的虚拟机上的docker容器中运行Janusgraph(Berkeleyje/Lucern/gremlin服务器)(我不想要任何模糊的建议)-我正在使用docker容器Janusgraph/Janusgraph:latest
v3.4.4
修改了中间目标2:由于连接问题,在本地机器上的docker容器中运行Janusgraph(Berkeleyje/Lucern/gremlin服务器),与运行gremlin控制台的docker容器位于同一位置
步骤:
docker-pull-janusgraph/janusgraph:latest
docker run-it-p 8182:8182 janusgraph/janusgraph:latest/bin/bash
(也使用imageID)运行图像/opt/janusgraph/bin/gremlin server.sh
docker pull tinkerpop/gremlin console:latest
/opt/gremlin console/conf/remote.yaml
调整为指向服务器主机名处的主机
,该主机名可从容器解析为其IP)/opt/janusgraph/bin/gremlin.sh
远程连接tinkerpop.server conf/remote.yaml
:远程控制台(将所有后续命令切换到远程gremlin服务器)
gremlin>:>graph=TinkerGraph.open(conf/gremlin-server/conf/gremlin-server/janusgraph-berkeleyje-server.properties)
它响应了
主机没有及时响应-检查服务器状态并再次提交。
无论我是尝试连接同一位置的还是远程的gremlin服务器,这都是相同的
现在该怎么办?去哪里看?为什么小精灵这么难
元问题
我不清楚(:>TinkerGraph.open(server.properties)
是否需要指向控制台本地服务器.properties
文件的路径,或者(我认为更可能是)相对于远程服务器的路径
我希望文档不那么想当然,并且(对于必须只有有限数量的体系结构模式*)全面地解释所需的一切
*
- 服务器和客户端位于一台计算机上,共享资源/网络和c
- 服务器和客户端在一台机器上进行容器化,因此如何让它们进行对话(通过容器隔离)
- 远程计算机上的服务器到客户端(有或没有集装箱化)
- 这是一个适合我的快速版本:
docker run --name janusgraph-default \
-e janusgraph.storage.berkeleyje.cache-percentage=80 \
-e gremlinserver.threadPoolWorker=2 \
-e gremlinserver.channelizer=org.apache.tinkerpop.gremlin.server.channel.WsAndHttpChannelizer \
-p 8182:8182 \
janusgraph/janusgraph:latest
我在这里定制了一个channelizer,如果您只需要websocket而不需要Http,就可以避免使用它
在gremlin控制台中:
:remote connect tinkerpop.server conf/remote.yaml
:remote console
graph
==>standardjanusgraph[berkeleyje:/var/lib/janusgraph/data]
- 确保
指向localhost:8182(来自docker run命令的端口)remote.yaml
- 第二行
仅用于避免每个命令的远程控制台
:>
我相信服务器会在其相对路径中查找属性文件。docker版本将属性文件复制到
/etc/opt/
,如下所述:这是一个适用于我的快速版本:
docker run --name janusgraph-default \
-e janusgraph.storage.berkeleyje.cache-percentage=80 \
-e gremlinserver.threadPoolWorker=2 \
-e gremlinserver.channelizer=org.apache.tinkerpop.gremlin.server.channel.WsAndHttpChannelizer \
-p 8182:8182 \
janusgraph/janusgraph:latest
我在这里定制了一个channelizer,如果您只需要websocket而不需要Http,就可以避免使用它
在gremlin控制台中:
:remote connect tinkerpop.server conf/remote.yaml
:remote console
graph
==>standardjanusgraph[berkeleyje:/var/lib/janusgraph/data]
- 确保
指向localhost:8182(来自docker run命令的端口)remote.yaml
- 第二行
仅用于避免每个命令的远程控制台
:>
我相信服务器会在其相对路径中查找属性文件。docker版本将属性文件复制到这里提到的
/etc/opt/
:忘记提到运行graph=TinkerGraph.open(conf/gremlin server/conf/gremlin server/janusgraph berkeleyje server.properties)
在服务器端不会得到响应,让我怀疑上一个:remote connect tinkerpop.server conf/remote.yaml
命令的成功响应忘记提到运行graph=TinkerGraph.open(conf/gremlin server/conf/gremlin server/janusgraph berkeleyje server.properties)
在服务器端不会得到响应,让我怀疑上一个:remote connect tinkerpop.server conf/remote.yaml
命令的成功响应
:remote connect tinkerpop.server conf/remote.yaml
:remote console
graph
==>standardjanusgraph[berkeleyje:/var/lib/janusgraph/data]