为neo4j docker容器指定bolt端口

时间:2016-09-12 14:14:45

标签: c# docker neo4j docker-compose

我有两个使用docker-compose.yml文件创建的neo4j容器。

version: '2'
services:
  neo4jdev1:
    image: neo4j
    ports: 
         - "7474:7474"
         - "7687:7687"
    volumes:
         - $HOME/neo4jdev1/data:/data
    expose:
         - "7687"
         - "7474"
  neo4jdev2:
    image: neo4j
    ports: 
         - "7475:7474"
         - "7689:7689"
    volumes:
         - $HOME/neo4jdev2/data:/data
    expose:
         - "7689"
         - "7475"

当我使用docker-compose up运行时,我会运行两个服务。我通过访问以下URL来检查这些。

https://192.168.99.100:7474

https://192.168.99.100:7475

正如您所看到的,我正在尝试为我的第二个服务公开端口7689,因为我想将它用作bolt的端口而不是默认的7687.

在我的单元测试中,我尝试使用两个驱动程序连接到bolt。

测试1(使用端口7687) - 通过

IDriver driver = GraphDatabase.Driver("bolt://192.168.99.100:7687", AuthTokens.Basic("neo4j", "password"));

测试2(使用端口7689) - FAIL

IDriver driver = GraphDatabase.Driver("bolt://192.168.99.100:7689", AuthTokens.Basic("neo4j", "password"));

这是我到目前为止所做的事情。我在位于/var/lib/neo4j/conf/neo4j.conf的容器内编辑了配置文件。我从

改变了这一行

dbms.connector.bolt.address=0.0.0.0:7687dbms.connector.bolt.address=0.0.0.0:7689

保存配置文件后,测试仍然失败,并且螺栓端口仍然在neo4j浏览器中显示7687。

enter image description here

是否有另一种方法可以在docker-compose文件上指定bolt端口,还是有另一种方法来更改正在运行的容器本身的bolt端口?

2 个答案:

答案 0 :(得分:1)

尝试:

neo4jdev2:
  image: neo4j
  ports: 
     - "7475:7474"
     - "7689:7687"
  volumes:
     - $HOME/neo4jdev2/data:/data

对于ports部分,第一个端口是在容器外部使用的端口,第二个端口在容器内部使用。

答案 1 :(得分:0)

如果您想在一台服务器上并行运行几个neo4j docker容器,则会遇到螺栓端口问题。因此,您必须使用 NEO4J_dbms_connector_bolt_advertised__address

为每个容器指定不同的内部螺栓端口

示例docker-compose.yml文件

version: '2'
services:
  neo4jmedcon:
    image: neo4j
    environment:
      NEO4J_AUTH: "none"
      NEO4J_dbms_connector_bolt_advertised__address: "localhost:10031"
    ports:
     - "10030:7474"
     - "10031:7687"
    volumes:
     - $HOME/docker/conf:/var/lib/neo4j/conf
     - $HOME/docker/neo4j/medcon/data:/var/lib/neo4j/data
     - $HOME/docker
  neo4jMK-Constance:
    image: neo4j
    environment:
      NEO4J_AUTH: "none"
      NEO4J_dbms_connector_bolt_advertised__address: "localhost:10081"
    ports:
     - "10080:7474"
     - "10081:7687"
    volumes:
     - $HOME/docker/conf:/var/lib/neo4j/conf
     - $HOME/docker/neo4j/MK-Constance/data:/var/lib/neo4j/data
     - $HOME/docker