当前位置: 首页 > news >正文

Docker:Docker部署Neo4j图数据库

前言
Neo4j是一个高性能的,基于java开发的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中;它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎。

Neo4j分为企业版和社区版,企业版可以创建多个数据库,链接多个数据库,但是收费……;社区版只能链接一个数据库,所以社区版不支持创建数据库命令。

Neo4j部署后默认创建名字为 neo4j 的数据库,可以直接链接这个数据库

拉取镜像
# 下载镜像
docker pull neo4j:5.26.2
也可以不指定版本

 

构建容器
# 创建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,密码可以自定义


访问界面
访问地址: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
原文链接:https://blog.csdn.net/weixin_44917201/article/details/155675410

http://www.jsqmd.com/news/338220/

相关文章:

  • 计算机18个专业避坑指南:谁是毕业即高薪的“宝藏”,谁是天坑?
  • 2026旧地面翻新处理厂家推荐:江西祥顺建设有限公司,专注旧地面起尘起砂翻新解决方案 - 品牌推荐官
  • 2026年2月江苏合规网约车/旅游包车/政企定制化租车/代驾包车 /个人租车服务优质企业综合评估与推荐 - 2026年企业推荐榜
  • 2026年定压补水/变频供水/换热机组厂家推荐:威海远大电器制造有限公司全系解决方案 - 品牌推荐官
  • 海报模板 | 学术工具 | 学术海报模板 | 学术会议海报 | 学术会议必备 | 科研展示 | 科研海报 | 国际学术海报 | 会议参会交流 | 科研成果展示 | 海报展示 | 免费下载 | 科研必备
  • 2026年银行助贷服务推荐:甬易融金融科技驱动,助力个人与企业融资需求 - 品牌推荐官
  • 2026年少儿英语教育实力推荐:克拉申阅读表演教育,提供多元英语课程与分级读物 - 品牌推荐官
  • 网络安全究竟防什么?说清网络空间安全的五大重点防护领域
  • 孤能子视角:“智慧交通“
  • 2026年数控系统维修厂家推荐:长沙市晨骏自动化科技有限公司,专业芯片级/主板/驱动器/电源模块维修,适配多品牌数控设备 - 品牌推荐官
  • 2026 上海展厅新标杆:展台设计搭建公司的沉浸式创新与品质答卷 - 资讯焦点
  • 2026年大金中央空调厂家推荐:老房子装暖气、采暖系统、地暖、大金中央空调、家用暖气片、家装暖气片、明装暖气片选择指南 - 优质品牌商家
  • 2026年多媒体/企业/文化/智能/数字/党建/光影展厅推荐:成都经事文化全系定制 - 品牌推荐官
  • 孤能子视角:“智慧物流“
  • 2026年心理咨询机构推荐:湖南明心心理咨询,专注儿童/学生/青少年心理咨询辅导服务 - 品牌推荐官
  • Python 操作 Excel 高阶技巧:用 openpyxl 玩转循环与 Decimal 精度控制
  • 关于单网卡服务器和双网卡服务器路由配置
  • NodeJs从入门到上天:什么是Node.js
  • 2026年2月西安搬家公司实力榜:本地化规模化服务商深度评测 - 深度智识库
  • 如何从Target平台获取搜索列表数据的API接口
  • 特斯拉All in机器人!小鹏IRON首秀摔了个大跟头|人形机器人日报0203
  • 声画合一 智控全场 —— 高清数字会议系统重构现代会议新生态
  • 银行管理系统
  • 如何避免交通事故与被迫被碰瓷
  • Apple生态自动化理想之选!亚马逊云科技Mac实例一键部署OpenClaw
  • 吃透分布式与微服务:3分钟分清区别,再也不怕面试被问!
  • SpringCloud从入门到上天:分布式和微服务基础
  • 2026年2月江苏合规网约车/旅游包车/政企定制化租车/代驾包车 /个人租车服务公司分析报告 - 2026年企业推荐榜
  • 账单太复杂?Q Developer+MCP轻松分析云成本!
  • 2026年杭州国际快递代理公司权威推荐:杭州国际快递代理/杭州国际快递集运/杭州国际快递货运/选择指南 - 优质品牌商家