如何为docker版本的neo4j安装apoc
APOC是neo4j经常使用的功能扩展包,langchain等LLM工具连接neo4j依赖apoc。这里尝试为docker 版本的neo4j安装apoc。
apoc (awesome procedures on cypher) 是neo4j经常使用的用户功能扩展库。
langchain等依赖apoc访问neo4j。这里尝试为docker 版本的neo4j安装apoc库。
1 neo4j安装
这里假设docker版本的neo4j已经安装,安装版本为neo4j:2025.09,过程参考
https://blog.csdn.net/liliang199/article/details/153691513
2 apoc安装
2.1 下载apoc
apoc与neo4j的版本是一对一兼容,如下所示,neo4j 2025.09.0对应apoc的版本是2025.09.0。
https://github.com/neo4j/apoc/releases/tag/2025.09.0
apoc vs neo4j版本对应关系来源 https://neo4j.com/docs/apoc/current/installation/
然后下载2025.09.0的neo4j
https://github.com/neo4j/apoc/releases/download/2025.09.0/apoc-2025.09.0-core.jar
假设本次存储目录为
/data/dockerData/neo4j/apoc-2025.09.0-core.jar
2.2 安装apoc
1)确定容器中apoc目录
参考apoc官网文档,需要将下载的apoc jar包移动到$NEO4J_HOME/plugins。
具体为neo4j目录的plugins子目录下。
在docker容器中,neo4j的home目录为/var/lib/neo4j,plugins子目录为/var/lib/neo4j/plugins
2)宿主机拷贝apoc文件到neo4j容器
假设在宿主机中,apoc jar包的存储路径为
/data/dockerData/neo4j/apoc-2025.09.0-core.jar
所以,docker拷贝命令如下
docker cp /data/dockerData/neo4j/apoc-2025.09.0-core.jar neo4j:/var/lib/neo4j/plugins
检查宿主机的plugins目录
docker exec -it neo4j ls /var/lib/neo4j/plugins
输出如下,可以看到 apoc-2025.09.0-core.jar已经安装到容器的plugins子目录。
README.txt apoc-2025.09.0-core.jar
2.3 配置apoc
在neo4j的配置文件conf/neo4j.conf中配置apoc,为apoc增加权限
dbms.security.procedures.unrestricted=apoc.*
这里为先从neo4j容器中将配置文件拷贝到宿主机。
docker cp neo4j:/var/lib/neo4j/neo4j.conf .
vim neo4j.conf,增加上述配置行,如下图所示。

然后再将修改后的文件拷贝回neo4j容器
docker cp neo4j.conf neo4j:/var/lib/neo4j/conf/neo4j.conf
3 重启neo4j
参考apoc官方文档,在安装apoc后,需要重启neo4j,即重启容器中的neo4j。
重新登录neo4j容器
docker exec -it neo4j bash
进入到容器后,重启neo4j
./bin/neo4j restart
输出如下,表示neo4j容器重启成功。
root@xxxxxxc:/var/lib/neo4j# ./bin/neo4j restart
Stopping Neo4j............ stopped.
Directories in use:
home: /var/lib/neo4j
config: /var/lib/neo4j/conf
logs: /logs
plugins: /var/lib/neo4j/plugins
import: /var/lib/neo4j/import
data: /var/lib/neo4j/data
certificates: /var/lib/neo4j/certificates
licenses: /var/lib/neo4j/licenses
run: /var/lib/neo4j/run
Starting Neo4j.
Started neo4j (pid:701). It is available at http://0.0.0.0:7474
There may be a short delay until the server is ready.
4 测试apoc
由于langchain_neo4j的Neo4jGraph依赖apoc,所以这里使用Neo4jGraph间接测试apoc安装。
测试代码如下所示
import os
os.environ["NEO4J_URI"] = "bolt://localhost:7687"
os.environ["NEO4J_USERNAME"] = "neo4j"
os.environ["NEO4J_PASSWORD"] = "12345678"
from langchain_neo4j import Neo4jGraph
graph = Neo4jGraph()
附录
apoc权限问题
创建langchain_neo4j.Neo4jGraph时,报如下错误
ClientError: {code: Neo.ClientError.Procedure.ProcedureRegistrationFailed} {message: apoc.meta.data is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.}
这是apoc的权限问题,解决方案如下
在neo4j的配置文件conf/neo4j.conf中配置apoc,为apoc增加权限
dbms.security.procedures.unrestricted=apoc.*
reference
---
如何基于docker安装neo4j并基于py2neo访问neo4j
https://blog.csdn.net/liliang199/article/details/153691513
apoc introducction
https://neo4j.com/docs/apoc/current/introduction/
Installation
https://neo4j.com/docs/apoc/current/installation/
apoc releases
https://github.com/neo4j/apoc/releases/
message: apoc.meta.data is unavailable
https://blog.csdn.net/weixin_46398647/article/details/136682368
Docker cp命令详解:在Docker容器和主机之间复制文件/文件夹
https://blog.csdn.net/Hogwartstester/article/details/136372883
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)