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会使容器停止.
解决办法:
-
以交互模式启动容器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系统中可能无法正确挂载。
-
通过neo4j-admin命令导入dump文件
```shell neo4j-admin database load neo4j --from-path=/data/ --overwrite-destination=true
-
退出容器A
-
正常启动容器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