Docker 快速下载Neo4j 方法记录

发布于:2025-08-20 ⋅ 阅读:(17) ⋅ 点赞:(0)

打开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浏览器

  1. 打开浏览器访问:http://localhost:7474

  2. 输入账号密码:

    • 用户名:neo4j

    • 密码:ship123(与命令中设置一致)

  3. 首次登录会要求修改密码(建议更改为复杂密码)

  4. 登录成功

验证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

这个输出说明:

  1. 配置文件位置确认

    • Neo4j配置文件确实位于 /var/lib/neo4j/conf/neo4j.conf(而不是传统的/etc路径)

    • 文件已存在且大小为16KB(16357字节),是完整的配置文件

  2. 权限状态

    • 文件所有者是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  # 实时查看日志

网站公告

今日签到

点亮在社区的每一天
去签到