Docker轻松搭建Neo4j+APOC环境

Docker轻松搭建Neo4j+APOC环境

一、简介

Neo4j 是一款高性能的 原生图数据库,采用 属性图模型 存储数据,支持 Cypher查询语言,适用于复杂关系数据的存储和分析。其核心优势包括:

  • 灵活的数据模型:以 节点(Node)、关系(Relationship)和属性(Property) 组织数据
  • 高效的关联查询:擅长处理深度遍历、路径查找等复杂关系查询
  • ACID事务支持:确保数据一致性
  • 可扩展性:支持大规模图数据处理
    APOC(Awesome Procedures On Cypher) 是 Neo4j 的 官方扩展插件,提供了 300+ 存储过程和函数,极大增强 Neo4j 的功能,包括:
  • 数据导入/导出(JSON、CSV、XML、JDBC等)
  • 图算法(最短路径、PageRank、社区发现等)
  • 数据转换(集合、字符串、时间处理)
  • 图重构(子图提取、虚拟图、模式匹配)
  • 运维工具(数据库监控、备份恢复)
    Docker部署Neo4j官方文档:https://neo4j.com/docs/operations-manual/current/docker/introduction/

二、Docker部署neo4j

1.cmd打开命令行,运行:docker pull neo4j。docker环境搭建参考文章:Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程

2.在本地创建映射文件夹neo4j>data、neo4j>conf、neo4j>logs

3.临时启动neo4j容器:docker run -d --name neo4j --publish=7474:7474 --publish=7687:7687 --env NEO4J_AUTH=neo4j/12345678 neo4j

4.在docker客户端找到/var/lib/neo4j/conf目录,把该目录中的文件复制到neo4j>conf;不复制也可以,只是挂载conf目录后,原本的四个文件会只留一个neo4j.conf文件

5.运行docker stop neo4j && docker rm neo4j删除原本的临时容器,使用下面命令重启容器

复制代码
/*****
--publish:主机端口:容器端口,7474为浏览器端端口,7687为Bolt协议默认端口
-d:启动的镜像名称。
--name:设置容器名称。
--restart=always:设置docker启动时,容器跟随自启。
--env NEO4J_AUTH=neo4j/12345678:设置密码,密码长度不能小于8位
--volume=/f/Docker/home/neo4j/conf:/var/lib/neo4j/conf:挂载容器配置文件到宿主,方便修改配置文件,,如果是linux系统宿主机不需要加盘符,直接使用/就代表宿主机的根目录
--volume=/f/Docker/home/neo4j/data:/data:挂载容器存储文件到宿主,避免因不小心卸载容器或者容器损坏导致数据丢失不可找回风险,,如果是linux系统宿主机不需要加盘符,直接使用/就代表宿主机的根目录
--volume=/f/Docker/home/neo4j/logs:/logs:挂载日志文件,,如果是linux系统宿主机不需要加盘符,直接使用/就代表宿主机的根目录
*****/

docker run -d --name neo4j --restart=always --publish=7474:7474 --publish=7687:7687 --env NEO4J_AUTH=neo4j/12345678 --volume=/f/Docker/home/neo4j/data:/data --volume=/f/Docker/home/neo4j/conf:/var/lib/neo4j/conf --volume=/f/Docker/home/neo4j/logs:/logs neo4j

6.宿主机访问:http://localhost:7474/,页面正常打开说明neo4j部署成功

7.验证数据文件是否挂载成功:打开neo4j>data如图所示,说明数据文件挂载成功

8.验证日志文件是否挂载成功:打开neo4j>conf如图所示,说明日志文件挂载成功、neo4j>logs

9.验证配置文件是否挂载成功:打开neo4j>logs,如果该目录下的文件还存在,说明配置文件挂载成功

三、Docker安装APOC插件

1.运行docker exec -it neo4j neo4j --version,查看neo4j的版本,第一个neo4j是容器名,第二个neo4j是neo4j命令

2.访问链接:https://neo4j.com/docs/apoc/current/installation/,下载对应版本的APOC包,在neo4j目录新建plugins文件夹,把apoc包放进该文件夹

3.将文件由宿主机移动至容器:docker cp F:/Docker/home/neo4j/plugins/apoc-2025.04.0-core.jar neo4j:/var/lib/neo4j/plugins

4.重新启动容器:docker restart neo4j。也可在创建容器时挂载plugins目录

5.测试apoc插件是否安装成功,浏览器访问:http://localhost:7474/,输入账号密码登录,运行:call apoc.help("apoc")

四、删除数据库/切换数据库

在免费版 Neo4j 中,单次仅支持运行一个数据库,且默认数据库名必须为 neo4j。如需删除数据库,只需以下步骤:

1.停止容器:docker stop <容器名>

2.修改挂载目录:进入挂载的 data 目录,将默认数据库文件夹 neo4j 重命名(如 neo4j_old)

3.重启容器:docker start <容器名>

由于 Neo4j 启动时检测不到默认数据库,会自动新建一个空的 neo4j 数据库,原数据即被"删除"。此方法无需复杂操作,适合快速清理数据。

相关推荐
贝锐7 小时前
Docker部署Teemii本地漫画库,并通过花生壳内网穿透实现远程访问
docker
观测云10 小时前
Kubernetes CRD 方式配置容器日志采集最佳实践
容器·kubernetes·日志分析
i***220711 小时前
springboot整合libreoffice(两种方式,使用本地和远程的libreoffice);docker中同时部署应用和libreoffice
spring boot·后端·docker
羑悻的小杀马特13 小时前
轻量跨云·掌控无界:Portainer CE + cpolar 让远程容器运维像点外卖一样简单——免复杂配置,安全直达对应集群
运维·网络·安全·docker·cpolar
EAIReport18 小时前
企业级报表自动化:基于Docker的部署实践
运维·docker·自动化
tianyuanwo20 小时前
多平台容器化RPM构建流水线全指南:Fedora、CentOS与Anolis OS
linux·运维·容器·centos·rpm
敲上瘾1 天前
【探索实战】:Kurator分布式统一应用分发平台的全面解析与实践指南
分布式·容器·kubernetes·serverless
cui_win1 天前
Docker Compose 部署一个完整的Prometheus监控告警系统
docker·容器·prometheus
ALex_zry1 天前
Docker Compose运维技术实战分享:从安装到架构解析
运维·docker·架构
roman_日积跬步-终至千里1 天前
【Docker】Docker Stop 后到底发生了什么?——从信号机制到优雅停机
运维·docker·容器