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 数据库,原数据即被"删除"。此方法无需复杂操作,适合快速清理数据。

相关推荐
Hadoop_Liang8 小时前
使用Kubernetes Gateway API实现域名访问应用
容器·kubernetes·gateway
java_cj11 小时前
深入kubectl create源码:从YAML到Pod的完整链路拆解
运维·云原生·容器·kubernetes
源图客13 小时前
【AI向量数据库】Weaviate介绍与部署
运维·docker·容器
一勺菠萝丶15 小时前
宝塔 Docker 安装 Ubuntu 及启动失败解决流程
ubuntu·docker·eureka
码云骑士17 小时前
28-Docker部署Django(下)-docker-compose编排与静态文件处理
docker·容器·django
至乐活着17 小时前
Docker Compose多服务编排实战:从零搭建Node.js+MySQL+Redis全栈应用
docker·微服务·devops·容器编排·compose
木雷坞18 小时前
Firecrawl Docker Compose 自托管排查:镜像、Redis、队列和 Playwright
redis·docker·容器·firecrawl
whyfail18 小时前
Colima:把 Docker Desktop 从 Mac 上“瘦身”的那把刀
macos·docker·容器
人工智能培训19 小时前
数字孪生的未来发展方向探析
gpt·深度学习·机器学习·容器·知识图谱
大佐不会说日语~20 小时前
在 Windows 本地用 Docker 部署向量模型(bge-m3)
windows·docker·容器·llm·ollama