Docker部署Neo4j

部署

基础镜像

docker pull neo4j:5.23.0-community

启动容器

编写docker-compose.yml文件,设置数据挂载目录、端口映射。

version: '3'
services:
    neo4j-community:
        image: neo4j:5.23.0-community
        container_name: neo4j_5.23
        volumes:
          - "./data:/data:rw"
          - "./conf:/var/lib/neo4j/conf"
        ports:
          - "17474:7474"
          - "17687:7687"

启动容器

数据库操作

重置密码

示例:

brenda-demand-orchid-period-coconut-6273

创建用户

create user weird_client set password 'FpNRX8UtCN]8v5D.?Tr]!=)nBHZo-V1s2H)YYfFw91>8RL' change not required

导入数据

neo4j-admin database load neo4j --from-path=/data/
导入数据要求neo4j是停止状态,然而默认情况下在容器中停止neo4j会使容器停止.

解决办法:

  1. 以交互模式启动容器A,覆盖默认启动neo4j的命令,进入容器后neo4j未启动。

    docker run \
    --publish=17474:7474 \
    --publish=17687:7687 \
    --volume=<DATA_DIR>:/data \
    --volume=<IMPORT_DIR>:/import \
    --ulimit=nofile=40000:40000 \
    -it \
    neo4j:5.23.0-community \
    /bin/bash
    

    注意:<DATA_DIR>最好填写绝对路径,否则在windows系统中可能无法正确挂载。

  2. 通过neo4j-admin命令导入dump文件

    ```shell
    neo4j-admin database load neo4j --from-path=/data/ --overwrite-destination=true
    

  3. 退出容器A

  4. 正常启动容器B,此时neo4j库中已经有neo4j.dump的数据。

    启动容器B时,挂载的数据目录需要与上述<DATA_DIR>相同。

参考链接:

How do you perform a dump of a Neo4j database within a Docker container? - Server Fault

https://stackoverflow.com/questions/52758820/problem-loading-neo4j-dump-in-docker-container

CoolCats
CoolCats
理学学士

我的研究兴趣是时空数据分析、知识图谱、自然语言处理与服务端开发