在多个 Docker 主机上部署 Neo4j 集群

Neo4j 支持在没有编排工具的容器化环境中进行集群部署。本节介绍了如何使用 Docker 在多台机器上设置集群。有关如何在本地设置集群以进行测试的教程,请参阅 教程 → 在 Docker 容器中部署 Neo4j 集群

此页面上的示例使用了命令扩展和 DNS 发现方法。有关更多信息,请参阅

为了创建高可用容器集群,Neo4j 集群服务器可以部署在不同的物理机器上。

当每个容器运行在自己的物理机器上且未使用 Docker 网络时,您必须定义广播地址以启用物理机器之间的通信。每个容器还必须绑定到主机网络的。有关容器网络的更多信息,请参阅 Docker 官方文档

调用集群成员的 docker run 命令示例

docker run --name=server1 --detach \
         --network=host \
         --publish=7474:7474 --publish=7687:7687 \
         --publish=6000:6000 --publish=7000:7000 \
         --hostname=public-address \
         --env NEO4J_dbms_cluster_endpoints=server1-public-address:6000,server2-public-address:6000,server3-public-address:6000 \
         --env NEO4J_server_cluster_advertised__address=public-address:6000 \
         --env NEO4J_server_cluster.raft.advertised__address=public-address:7000 \
         --env NEO4J_server_default_advertised__address=public-address \
         --env NEO4J_ACCEPT_LICENSE_AGREEMENT=yes \
         --env NEO4J_server_bolt_advertised__address=public-address:7687 \
         --env NEO4J_server_http_advertised__address=public-address:7474 \
         neo4j:2025.05.0-enterprise

其中 public-address 是机器的公共主机名或 IP 地址。

© . All rights reserved.