Docker部署Neo4j核心三步:拉指定版本镜像(如neo4j:5.26.2-community)、启容器时必须配置端口映射、NEO4J_AUTH密码、数据挂载、日志插件挂载及自动重启策略,最后通过Web登录、play movies示例和cypher-shell连通性三重验证服务就绪。

用 Docker 部署 Neo4j,核心就三步:拉镜像、启容器、连服务。关键不在命令多复杂,而在配置不漏项、挂载不丢数据、密码不设弱。下面按实战节奏展开,直击高频问题点。
拉取指定版本镜像,别碰 latest
Neo4j 5.x 起对认证和配置更严格,latest 标签容易导致行为不一致或启动失败。推荐明确指定社区版稳定版本,例如:
- docker pull neo4j:5.26.2-community(当前最新稳定社区版)
- 企业版试用可加许可声明:-e NEO4J_ACCEPT_LICENSE_AGREEMENT=yes -e NEO4J_edition=enterprise
- 避免 Java 版本冲突或环境变量干扰,容器内已预装适配 JDK
启动容器必须带的五项配置
缺一不可,否则不是连不上,就是数据不持久、服务起不来:
- 端口映射:-p 7474:7474(浏览器界面)、-p 7687:7687(Bolt 协议,客户端默认走这个)
- 初始认证:-e NEO4J_AUTH=neo4j/YourPass123!(用户名固定为 neo4j,密码需含大小写字母+数字+符号,长度≥8)
- 数据持久化:-v /path/on/host/data:/data(必挂,否则容器删掉数据全丢)
- 日志与插件支持:-v /path/on/host/logs:/logs、-v /path/on/host/plugins:/plugins(便于调试和扩展)
- 自动恢复保障:--restart unless-stopped(宿主机重启后自动拉起容器)
验证服务是否真正就绪
别只看 docker ps 显示 running 就以为完事。真实就绪要过三关:
- 打开 http://localhost:7474,输入账号密码能进 Web 界面
- 登录后执行 play movies 加载示例图谱,再跑 MATCH (n) RETURN count(n) 得到非零数字
- 终端执行:docker exec -it neo4j cypher-shell -u neo4j -p YourPass123! "RETURN 1",返回 1 表示 Bolt 连通正常
- 若失败,第一反应是查日志:docker logs neo4j,90% 的问题是密码格式错、端口被占或挂载路径无读写权限
生产环境建议加的三项安全调优
开发环境能跑通就行,但一旦暴露在公网或接入业务系统,这几项配置必须补上:
- 限制监听地址:-e NEO4J_dbms_connector_http_advertised__address=localhost:7474(防止外部直连 Web 管理页)
- 控制内存用量:-e NEO4J_dbms_memory_heap_max__size=3g(按宿主机资源设,避免 OOM 杀进程)
- 启用慢查询日志:-e NEO4J_dbms_logs_query_enabled=true(定位性能瓶颈时非常有用)


















