首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Neo4j docker-合成拒绝连接到应用程序的图像

Neo4j docker-合成拒绝连接到应用程序的图像
EN

Stack Overflow用户
提问于 2019-06-24 00:20:02
回答 1查看 490关注 0票数 1

我过去常常单独运行Neo4j,然后我的应用程序会根据需要与它交互。现在我正在使用docker-compose来运行Neo4j

这是我在docker文件中的neo4j部分。

代码语言:javascript
复制
  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

当我尝试在docker-compose up之后从localhost:7474访问neo4j时,它工作得很好。

但是,当我尝试通过我的应用程序访问它时,它给出了以下错误

代码语言:javascript
复制
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的输出:

如果我遗漏了什么,请告诉我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-24 12:10:33

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

在您的示例中,neo4j运行在bridge网络模式下,容器网络与主机网络不同。因此,为了从外部世界访问在此类容器内运行应用程序,您必须使用docker-compose中的ports:字段执行port mapping

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

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56725739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档