Neo4j docker-compose图像拒绝与应用程序的连接

时间:2019-06-23 16:20:01

标签: docker neo4j docker-compose


我曾经分别运行Neo4j,然后我的应用程序根据需要进行了交互。现在,我正在使用docker-compose运行Neo4j

这是docker文件中neo4j的一部分。

  neo4j:
    container_name: neo4j_container
    restart: always
    image: neo4j:3.5.3
    network_mode: "bridge"
    ports:
      - "7474:7474"
      - "6477:6477"
      - "7687:7687"
      - "7473:7473"
    environment:
      - NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
      - NEO4J_dbms_security_procedures_unrestricted=apoc.*
      - NEO4J_apoc_import_file_enabled=true
      - NEO4J_dbms_shell_enabled=true
      - NEO4J_dbms_connector_http_listen__address=:7474
      - NEO4J_dbms_connector_https_listen__address=:6477
      - NEO4J_dbms_connector_bolt_listen__address=:7687
    volumes:
      - /usr/local/abc/temp:/var/lib/neo4j/import

我正在使用的Neo4j的图像是neo4j:3.5.3
当我尝试从neo4jdocker-compose up之后访问localhost:7474时,它完全正常。
但是当我尝试通过我的应用程序访问它时,它会出现以下错误

Unable to connect to localhost:7687, ensure the database is running and that there is a working network connection to it.<br>

试图从这个问题中寻求帮助,但是即使that也没有帮助。
以下是docker-compose ps的输出: enter image description here 请告诉我我是否缺少什么?

1 个答案:

答案 0 :(得分:0)

您应在应用程序中使用machine-ip:7687连接到neo4j

在您的情况下,neo4jbridge网络模式下运行,其中容器网络与主机网络不同。因此,为了从外部访问在此类容器中运行的应用程序,您必须使用docker-compose中的ports:字段来完成port mapping

现在,我想尝试访问neo4j的应用程序也正在bridge网络模式下运行。因此,将localhost:7687放入您的应用程序将指向该容器的localhost,但是您想连接到neo4j容器端口7687,该端口我们已经使用ports映射到主机网络选项。在这种情况下,可以使用neo4j从外部访问您的machine-ip:7687端口7687。

希望这会有所帮助。