当前位置: 首页 > 知识库问答 >
问题:

neo4j的docker实例与express在本地机器上的通信

米夕
2023-03-14

设置:NEO4J官方docker图像

  • neo4j_auth none
  • 端口localhost:7474 localhost:7687
  • 版本neo4j-community-4.3.3-unix.tar.gz

NODEJS图像

    null
 let driver = neo4j.driver(
        envConf.dbUri,  
        neo4j.auth.basic(envConf.dbUserName, envConf.dbUserName)
        );

我可以通过http://localhost:7474/browser/远程到neo4j映像,所以它正在运行。

我不能使用服务器映像调用本地neo4j实例。

当我调用服务器映像中的API时,我得到以下错误

我已经搜索了一段时间的文档,任何想法都将是最受欢迎的!

共有1个答案

艾文斌
2023-03-14

我能够通过使用docker-compose实现通信。问题是这两个容器都充当独立的网络,我无法找到允许服务器与数据库通信的方法。运行docker-compose并在单个compose网络中构建这两个容器允许使用服务名称进行通信。

注意这是标签敏感的!!

docker-compose.yml

version: '3.7'

networks:
    lan:

# The different services that make up our "network" of containers
services:
    # Express is our first service
    express:
        container_name: exp_server
        networks:
            - lan
        # The location of dockerfile to build this service
        build: <location of dockerfile>
        # Command to run once the Dockerfile completes building
        command: npm run startdev
        # Volumes, mounting our files to parts of the container
        volumes:
            - .:/src
        # Ports to map, mapping our port 3000, to the port 3000 on the container
        ports: 
            - 3000:3000
        # designating a file with environment variables
        env_file:
            - ./.env.express
    ## Defining the Neo4j Database Service        
    neo:
        container_name: neo4j_server
        networks:
            - lan
        # The image to use
        image: neo4j:latest
        # map the ports so we can check the db server is up
        ports: 
            - "7687:7687"
            - "7474:7474"
        # mounting a named volume to the container to track db data
        volumes:
            - $HOME/neo4j/conf:/conf
            - $HOME/neo4j/data:/data
            - $HOME/neo4j/logs:/logs
            - $HOME/neo4j/plugins:/plugins
        env_file:
            - .env.neo4j
 类似资料:
  • 我想知道我是否可以在一台机器上运行多个独立的neo4j实例。我知道我可以将多个实例配置为HA集群(此处),但这不是我的意图,我只需要在我的机器上使用两个完全不同且独立的neo4j实例(如果有区别的话,这是一个Mac OSX)。这只是为了我的开发测试,我尝试了有两个不同的目录,有不同的,并为它们设置了两个不同的端口,但只有一个运行正常。 如果有任何帮助,我将不胜感激。谢谢你。

  • 我现在很困惑。我尝试了很多我可以在网上找到的东西,但是,没有一个解决它。我使用WSL2安装了Win10和Docker desktop来托管Linux容器。我使用以下命令启动詹金斯网站。 这个很管用。我可以使用访问网站 谢谢你 编辑:只是想解释一下我做了什么来解决我的问题。创建network是我最初所做的,但由于我卷曲网页的方式错误,所以失败了。我做只是为了便于在上定位我的容器。但是,正如我的问题中

  • 我试图在我本地的电脑上使用kafka(Windows10)作为生产者,在docker容器(ubuntu)上使用spark流作为消费者。我的示例在容器中一起工作,但我需要在本地计算机上创建流。 在容器的另一边,我正在监听端口2181来接收流。 我希望你能帮助我。谢了。

  • 问题内容: 我正在尝试建立一个PHP网站,并且想要测试我的PHP文件而不将其上传到主机。在上载它们之前,基本上在我自己的机器上对其进行测试。我怎么做? 问题答案: 安装并运行XAMPP:http : //www.apachefriends.org/en/xampp.html

  • 问题内容: 最近,我读了一些新闻报道,指出微软正在与Docker合作使Docker在Windows Server上本地运行。 我想问的是,这将允许Windows应用程序在docker容器中运行,还是这是一种运行已经可用的docker映像库(在其中运行linux派生的特定子集)的一种方法Windows不使用VM? 问题答案: 这是关于在Windows主机中运行Windows容器。 Linux的容器仍

  • 我在Ubuntu 18.04上下载了两个版本的neo4j-community-3.5.12和neo4j-community-3.5.8。 我用默认设置运行3.5.8,我可以从网上看到它。http://localhost:7474/ 对于3.5.12,我更改了conf/neo4j.conf文件,并设置了一些其他端口号,以避免与默认端口号冲突。 这里有一个现有的/d1/data/database/gr