首页>软件资讯>常见问题

常见问题

Docker部署Neo4j图数据库

发布时间:2026-04-03 07:53:50人气:0

前言Neo4j是一个高性能的,基于java开发的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中;它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎。Neo4j分为企业版和社区版,企业版可以创建多个数据库,链接多个数据库,但是收费……;社区版只能链接一个数据库,所以社区版不支持创建数据库命令。Neo4j部署后默认创建名字为 neo4j 的数据库,可以直接链接这个数据库拉取镜像# 下载镜像

docker pull neo4j:5.26.2

也可以不指定版本

不指定版本代码.png

构建容器# 

创建neo4j容器

docker run -it -d -p 7474:7474 -p 7687:7687

-v /home/neo4j/data:/data

-v /home/neo4j/logs:/logs

-v /home/neo4j/conf:/var/lib/neo4j/conf

-v /home/neo4j/import:/var/lib/neo4j/import

-v /home/neo4j/plugins:/var/lib/neo4j/plugins

-e NEO4J_AUTH=neo4j/password

--name neo4j neo4j:5.26.2

-p 7474:7474  宿主机端口映射,7474端口为Neo4j界面访问端口-p 7687:7687  宿主机端口映射,7687端口为后台API接口访问端口-v /home/neo4j/data:/data  宿主机目录挂载,将Neo4j存储数据挂载到宿主机目录-v /home/neo4j/logs:/logs  宿主机目录挂载,将Neo4j运行日志挂载到宿主机目录-v /home/neo4j/conf:/var/lib/neo4j/conf  宿主机目录挂载,将Neo4j配置文件挂载到宿主机目录-v /home/neo4j/import:/var/lib/neo4j/import  宿主机目录挂载,将Neo4j数据导入目录挂载到宿主机目录-v /home/neo4j/plugins:/var/lib/neo4j/plugins  宿主机目录挂载,将Neo4j插件安装目录挂载到宿主机目录-e NEO4J_AUTH=neo4j/password  配置Neo4j的登录密码,用户名必须是neo4j,密码可以自定义

密码自定义.png

访问界面

访问地址:http://{{目标地址}}:7474/browser/ 本地部署的话就是 localhost,作者这里使用的是腾讯云服务器,使用云服务器记得开发7474端口数据备份与恢复停止容器不管是导入或导出操作,第一步一定要将已启动的Neo4j停止(不是删除,是停止)# 停止容器

docker stop neo4j

#### 导出neo4j数据

docker run --interactive --tty --rm

--volume=/home/neo4j/data:/data

--volume=/home/neo4j/backups:/var/lib/neo4j/import

--name neo4j_demo neo4j:5.26.2

neo4j-admin database dump neo4j --to-path=/var/lib/neo4j/import/

--interactive  提示Docker保持标准输入流(stdin,标准输入)对容器开放,允许用户通过命令行直接与容器交互,进行实时操作和调试。--tty  提示Docker 为容器分配一个虚拟终端,允许发信号给容器进行实时操作。--rm  容器完成操作并停止后自动删除容器。-v /home/neo4j/data:/data  引用刚才停止的Neo4j容器存储的数据-v /home/neo4j/backups:/var/lib/neo4j/import  将数据导出后通过容器映射目录到宿主机的 /home/neo4j/backup 目录neo4j-admin database dump neo4j --to-path=/var/lib/neo4j/import/  导出命令,在容器内使用 neo4j-admin 工具将 neo4j 数据库备份,备份文件存到容器内 /var/lib/neo4j/import/ 目录(实际则会通过映射存到宿主机对应的挂载目录 /home/neo4j/backups )--name neo4j_demo  重点:这里的容器名称不能和已停止的容器重名!!!!导入数据#- - - - - - - - - - - - - - 新版本 - - - - - - - - - - - - - - - 

 

#### 5.1版本之后,新版本导入neo4j数据(如果数据库存在会报错)

docker run -it --rm

--volume=/home/neo4j/data:/data

--volume=/home/neo4j/import:/var/lib/neo4j/import neo4j:5.26.2

neo4j-admin database load --from-path=/var/lib/neo4j/import/ neo4j


#### 5.1版本之后,新版本强制导入neo4j数据(无视数据库是否存在直接覆盖)

docker run -it --rm

--volume=/home/neo4j/data:/data

--volume=/home/neo4j/import:/var/lib/neo4j/import neo4j:5.26.2

neo4j-admin database load --from-path=/var/lib/neo4j/import/ neo4j

--overwrite-destination=true


#- - - - - - - - - - - - - - 旧版本 - - - - - - - - - - - - - - - - 


#### 5.1版本之前,旧版本的导入命令(如果数据库存在会报错)

docker run -it --rm

--volume=/home/neo4j/data:/data

--volume=/home/neo4j/import:/var/lib/neo4j/import neo4j:4.4.40

neo4j-admin load --from=/var/lib/neo4j/import/neo4j.dump --database=neo4j


#### 5.1版本之前,旧版本的强制导入命令(无视数据库是否存在直接覆盖)

docker run -it --rm

--volume=/home/neo4j/data:/data

--volume=/home/neo4j/import:/var/lib/neo4j/import neo4j:4.4.40

neo4j-admin load --from=/var/lib/neo4j/import/neo4j.dump --database=neo4j --force


#- - - - - - - - - - 旧版本文件导入新版本数据库 - - - - - - - - - - - - 


#### 旧版本的数据文件强制导入新版本数据库内(无视数据库是否存在直接覆盖)

docker run -it --rm

--volume=/home/neo4j/data:/data

--volume=/home/neo4j/import:/var/lib/neo4j/import neo4j:5.26.2

sh -c "neo4j-admin database load --from-path=/var/lib/neo4j/import/ neo4j --overwrite-destination=true && neo4j-admin database migrate neo4j --force-btree-indexes-to-range"

--rm  容器完成操作并停止后自动删除容器。-v /home/neo4j/data:/data  引用刚才停止的Neo4j容器存储的数据,目的是将数据导入到这个数据映射目录内-v /home/neo4j/import:/var/lib/neo4j/import  将刚才导出的文件改名 “neo4j.dump”后,复制到/home/neo4j/import目录下,通过挂载机制会自动映射到容器内的 /home/neo4j/import 目录neo4j-admin database load --from-path=/var/lib/neo4j/import/ neo4j  导入命令,在容器内使用 neo4j-admin 工具将 /var/lib/neo4j/import 目录下的“neo4j.dump”文件导入到neo4j数据库内--overwrite-destination=true  强制导入,无视数据库是否存在直接覆盖重启先前停止的容器# 重启Neo4j容器

docker start neo4j



上一条:什么是 Neo4j

下一条:没有了!