最近做的项目有个知识图谱功能,使用了Neo4j作为数据库,算法将结果写入数据,Java查询数据展示给前端,后面在部署的时候需要导入Neo4j数据库,这个导入不像MySQL或者Oracle那么方便,因此记录一下过程。
由于是内网部署,首先导入镜像,保持版本一致
需要开放7474和7687两个端口,且挂载data和conf两个目录,其他目录可不挂载
mkdir -p /data/volumes/neo4j
cd /data/volumes/neo4j
mkdir data logs conf import
docker run -d --name neo4j -p 7474:7474 -p 7687:7687 -v /data/volumes/neo4j/data:/data -v /data/volumes/neo4j/logs:/logs -v /data/volumes/neo4j/conf:/var/lib/neo4j/conf -v /data/volumes/neo4j/import:/var/lib/neo4j/import -e NEO4J_AUTH=neo4j/password neo4j:latest
启动后再停止容器,docker stop a10
,然后使用如下命令导入数据库
docker run -it --rm -v /data/volumes/neo4j/data:/data neo4j:latest neo4j-admin database load --from-path=/data/ neo4j --verbose --overwrite-destination=true
关键在于这行命令,由于neo4j运行时无法导入数据库,因为无法在运行中的容器内容进行导入操作,所以需要结合使用dokcer --rm命令,如下图所示,说明导入数据成功。