我有两个使用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。
IDriver driver = GraphDatabase.Driver("bolt://192.168.99.100:7687", AuthTokens.Basic("neo4j", "password"));
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:7687
至dbms.connector.bolt.address=0.0.0.0:7689
保存配置文件后,测试仍然失败,并且螺栓端口仍然在neo4j浏览器中显示7687。
是否有另一种方法可以在docker-compose文件上指定bolt端口,还是有另一种方法来更改正在运行的容器本身的bolt端口?
答案 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