Janusgraph docker 通过 docker net 连接到 cassandra docker 和 elasticsearch docker,并将 8182 暴露给主机?
Janusgraph docker connect to cassandra docker and elasticsearch docker by docker net, and expose 8182 to host machine?
我正在使用 janusgraph。我已经构建了一个 janusgraph 图像。我要的是运行这个janusgraph容器,同时连接cassandra容器和elasticsearch容器,最后暴露8182端口给宿主机。
我的问题是:如何让janusgraph通过ip和9042端口连接cassandra,通过ip和9200/9300端口连接elasticsearch?
首先,您需要 EXPOSE
您的 Docker 文件中的那些端口。您的 Docker 文件是您还需要为 Cassandra 集群端点定义 ARG
的地方。
Docker文件:
# argument for the Cassandra endpoints, with a default value of 127.0.0.1
ARG CASSANDRA_ENDPOINT_LIST=127.0.0.1
# Exposing required ports 8182(gremlin) 9042(Cassandra) 9200(ElasticSearch)
EXPOSE 8182 9042 9200
然后在入口点文件中使用 sed
执行 regex/replace:
sed -i "s/hostname=127\.0\.0\.1/hostname=${CASSANDRA_ENDPOINT_LIST}/g" ${JANUSGRAPH_CONF}/gremlin-server/janusgraph-cql-es-server.properties
构建 Docker 容器时,将 CASSANDRA_ENDPOINT_LIST
作为构建参数传递:
--build-arg CASSANDRA_ENDPOINT_LIST=1.2.3.4,1.2.3.5
此示例适用于 Cassandra,但类似的内容也适用于 ElasticSearch。
注意:您可以 也将所有 3 个构建在同一个容器中,这样您就不需要通过 --build-arg
传递端点了。不过,您需要足够的 RAM 来支持 Janus、Elastic 和 Cassandra 的 JVM。
我正在使用 janusgraph。我已经构建了一个 janusgraph 图像。我要的是运行这个janusgraph容器,同时连接cassandra容器和elasticsearch容器,最后暴露8182端口给宿主机。
我的问题是:如何让janusgraph通过ip和9042端口连接cassandra,通过ip和9200/9300端口连接elasticsearch?
首先,您需要 EXPOSE
您的 Docker 文件中的那些端口。您的 Docker 文件是您还需要为 Cassandra 集群端点定义 ARG
的地方。
Docker文件:
# argument for the Cassandra endpoints, with a default value of 127.0.0.1
ARG CASSANDRA_ENDPOINT_LIST=127.0.0.1
# Exposing required ports 8182(gremlin) 9042(Cassandra) 9200(ElasticSearch)
EXPOSE 8182 9042 9200
然后在入口点文件中使用 sed
执行 regex/replace:
sed -i "s/hostname=127\.0\.0\.1/hostname=${CASSANDRA_ENDPOINT_LIST}/g" ${JANUSGRAPH_CONF}/gremlin-server/janusgraph-cql-es-server.properties
构建 Docker 容器时,将 CASSANDRA_ENDPOINT_LIST
作为构建参数传递:
--build-arg CASSANDRA_ENDPOINT_LIST=1.2.3.4,1.2.3.5
此示例适用于 Cassandra,但类似的内容也适用于 ElasticSearch。
注意:您可以 也将所有 3 个构建在同一个容器中,这样您就不需要通过 --build-arg
传递端点了。不过,您需要足够的 RAM 来支持 Janus、Elastic 和 Cassandra 的 JVM。