打开docker和魔法
cmd
C:\Users\Administrator>docker run --name neo4j-ship -p 7474:7474 -p 7687:7687 -v %USERPROFILE%/neo4j/data:/data -v %USERPROFILE%/neo4j/import:/var/lib/neo4j/import -e NEO4J_AUTH=neo4j/ship123 -e NEO4JLABS_PLUGINS='["apoc"]' neo4j:4.4
Unable to find image 'neo4j:4.4' locally
等待下载
验证安装结果
再开一个终端
C:\Users\Administrator>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
neo4j 4.4 b4b681a8df08 2 months ago 887MB
hello-world latest 940c619fbd41 6 months ago 20.4kB
访问neo4j浏览器
打开浏览器访问:http://localhost:7474
输入账号密码:
用户名:
neo4j
密码:
ship123
(与命令中设置一致)
首次登录会要求修改密码(建议更改为复杂密码)
登录成功
验证APOC插件
RETURN apoc.version()
但是报错了
检查一下C:\Users\Administrator>docker exec -it neo4j-ship ls /var/lib/neo4j/plugins
发现
plugins
目录下只有 README.txt
,说明 APOC插件没有正确安装。
处理报错流程:
# 进入容器 docker exec -it neo4j-ship bash # 在容器内下载APOC(确保容器能联网) wget https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/4.4.0.4/apoc-4.4.0.4-all.jar -P /var/lib/neo4j/plugins/ # 退出容器 exit
# 添加APOC权限配置 docker exec neo4j-ship bash -c 'echo "dbms.security.procedures.unrestricted=apoc.*" >> /var/lib/neo4j/conf/neo4j.conf'
又报错了
这个错误表明 Neo4j 容器内的配置文件路径可能不正确,或者是权限问题。
进入容器检查实际路径:
bash
docker exec -it neo4j-ship bash ls -l /etc/neo4j/neo4j.conf # 尝试查找配置文件 ls -l /var/l ib/neo4j/conf/ # 检查该目录是否存在 exit
这个输出说明:
配置文件位置确认:
Neo4j配置文件确实位于
/var/lib/neo4j/conf/neo4j.conf
(而不是传统的/etc路径)文件已存在且大小为16KB(16357字节),是完整的配置文件
权限状态:
文件所有者是neo4j用户(第一列
-rw-------
表示只有所有者有读写权限)其他用户(包括root)没有访问权限
查看配置文件内容(确认APOC配置)
bash
cat /var/lib/neo4j/conf/neo4j.conf | grep -i "apoc\|procedure"
可以看出,当前 Neo4j 配置文件 (neo4j.conf
) 中关于 APOC 的配置是 被注释掉的状态(以 #
开头),所以 APOC 插件虽然存在但未被正确加载。
修改配置文件
在容器内执行以下命令:
bash
# 1. 临时放宽文件权限(默认仅允许neo4j用户读写) chmod 644 /var/lib/neo4j/conf/neo4j.conf # 2. 取消注释并添加APOC配置(使用sed工具) sed -i '/dbms.security.procedures.unrestricted/s/^#//g' /var/lib/neo4j/conf/neo4j.conf sed -i '/dbms.security.procedures.allowlist/s/^#//g' /var/lib/neo4j/conf/neo4j.conf sed -i 's/my.extensions.example,my.procedures.*/apoc.*/g' /var/lib/neo4j/conf/neo4j.conf sed -i 's/apoc.coll.*,apoc.load.*,gds.*/apoc.*/g' /var/lib/neo4j/conf/neo4j.conf # 3. 恢复文件权限(安全要求) chmod 600 /var/lib/neo4j/conf/neo4j.conf chown neo4j:neo4j /var/lib/neo4j/conf/neo4j.conf
2. 验证修改结果
bash
cat /var/lib/neo4j/conf/neo4j.conf | grep -i "apoc\|procedure"
正确输出应显示(没有 #
注释):
text
dbms.security.procedures.unrestricted=apoc.* dbms.security.procedures.allowlist=apoc.*
3. 重启 Neo4j 服务
bash
exit # 退出容器 docker restart neo4j-ship
验证
在 Neo4j 浏览器中执行:
cypher
RETURN apoc.version()
下次打开:
1. 启动 Neo4j 容器
如果容器已经停止(比如重启电脑后),运行以下命令启动:
bash
docker start neo4j-ship
2. 访问 Neo4j 浏览器
在电脑浏览器中打开:
text
http://localhost:7474
用户名:
neo4j
密码:您之前设置的密码(默认为
ship123
)
3. 日常使用场景
▶ 启动服务
bash
# 查看容器状态(确认是否运行) docker ps -a | findstr "neo4j-ship" # 如果状态为 Exited,启动它 docker start neo4j-ship
▶ 停止服务
bash
docker stop neo4j-ship
▶ 重启服务(修改配置后需要)
bash
docker restart neo4j-ship
▶ 查看日志
bash
docker logs -f neo4j-ship # 实时查看日志