C# 指定neo4j docker容器的螺栓端口
我使用C# 指定neo4j docker容器的螺栓端口,c#,docker,neo4j,docker-compose,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: - "768
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)-失败
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:7687
todbms.connector.bolt.address=0.0.0:7689
保存配置文件后,测试仍然失败,并且螺栓端口在neo4j浏览器中仍然显示7687
是否有其他方法可以在docker compose文件上指定螺栓端口,或者是否有其他方法可以更改正在运行的容器本身中的螺栓端口?请尝试:
neo4jdev2:
image: neo4j
ports:
- "7475:7474"
- "7689:7687"
volumes:
- $HOME/neo4jdev2/data:/data
对于端口部分,第一个端口在容器外部使用,第二个端口在容器内部使用。尝试:
neo4jdev2:
image: neo4j
ports:
- "7475:7474"
- "7689:7687"
volumes:
- $HOME/neo4jdev2/data:/data
对于端口部分,第一个端口在容器外部使用,第二个端口在容器内部使用。如果要在一台服务器上并行运行多个neo4j docker容器,则螺栓端口会出现问题。因此,您必须为每个具有NEO4J_dbms_connector_bolt_advised_地址的容器指定不同的内部螺栓端口
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
如果您想在一台服务器上并行运行多个neo4j docker容器,那么bolt端口就会出现问题。因此,您必须为每个具有NEO4J_dbms_connector_bolt_advised_地址的容器指定不同的内部螺栓端口
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
失败测试中的错误消息是什么?如果两个数据库运行在同一台主机上,则SSL连接可能会出现问题。然后,第二次连接将出现错误,因为证书与存储在~/.neo4j/known_hosts
@MartinPreusse中的内容不匹配。例外情况是System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝它192.168.99.100:7689
。顺便说一下,我正在使用Neo4j驱动程序进行C#刚才添加了我在下面找到的答案。失败测试中的错误消息是什么?如果两个数据库运行在同一台主机上,则SSL连接可能会出现问题。然后,第二次连接将出现错误,因为证书与存储在~/.neo4j/known_hosts
@MartinPreusse中的内容不匹配。例外情况是System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝它192.168.99.100:7689
。顺便说一句,我正在使用C#的Neo4j驱动程序,刚刚添加了我在下面找到的答案。另外,如果你把一个端口放在端口下,你也不需要把它放在暴露下。它是由Docker自动完成的。另外,如果你把一个端口放在ports下,你不需要把它也放在expose下。这是由Docker自动完成的。