Docker 部署 Neo4j 图数据库
前言
Neo4j 是一个高性能的基于 Java 开发的 NOSQL 图形数据库,它将结构化数据存储在网络上而不是表中;它是一个嵌入式的、基于磁盘的、具备完全的事务特性的 Java 持久化引擎。
Neo4j 分为企业版和社区版,企业版可以创建多个数据库,链接多个数据库,但是收费……;社区版只能链接一个数据库,所以社区版不支持创建数据库命令。
Neo4j 部署后默认创建名字为 neo4j 的数据库,可以直接链接这个数据库。
拉取镜像
# 下载镜像 docker pull neo4j:5.26.2
也可以不指定版本。
构建容器
# 创建 neo4j 容器
docker run -it -d -p 7474:7474 -p 7687:7687 \
-v /home/neo4j/data:/data \
-v /home/neo4j/logs:/logs \
-v /home/neo4j/conf:/var/lib/neo4j/conf \
-v /home/neo4j/import:/var/lib/neo4j/import \
-v /home/neo4j/plugins:/var/lib/neo4j/plugins \
-e NEO4J_AUTH=neo4j/password \
--name neo4j neo4j:5.26.2
-p 7474:7474宿主机端口映射,7474 端口为 Neo4j 界面访问端口。-p 7687:7687宿主机端口映射,7687 端口为后台 API 接口访问端口。-v /home/neo4j/data:/data宿主机目录挂载,将 Neo4j 存储数据挂载到宿主机目录。-v /home/neo4j/logs:/logs宿主机目录挂载,将 Neo4j 运行日志挂载到宿主机目录。-v /home/neo4j/conf:/var/lib/neo4j/conf宿主机目录挂载,将 Neo4j 配置文件挂载到宿主机目录。-v /home/neo4j/import:/var/lib/neo4j/import宿主机目录挂载,将 Neo4j 数据导入目录挂载到宿主机目录。-v /home/neo4j/plugins:/var/lib/neo4j/plugins宿主机目录挂载,将 Neo4j 插件安装目录挂载到宿主机目录。-e NEO4J_AUTH=neo4j/password配置 Neo4j 的登录密码,用户名必须是 neo4j,密码可以自定义。
访问界面
访问地址:http://{{目标地址}}:7474/browser/ 本地部署可使用 localhost,云服务器请确保开放 7474 端口。
数据备份与恢复
停止容器
不管是导入或导出操作,第一步一定要将已启动的 Neo4j 停止(不是删除,是停止)。
# 停止容器
docker stop neo4j
导出 neo4j 数据
docker run --interactive --tty --rm \
--volume=/home/neo4j/data:/data \
--volume=/home/neo4j/backups:/var/lib/neo4j/import \
--name neo4j_demo neo4j:5.26.2 \
neo4j-admin database dump neo4j --to-path=/var/lib/neo4j/import/
--interactive保持标准输入流开放,允许用户通过命令行直接与容器交互。--tty为容器分配一个虚拟终端,允许发信号给容器进行实时操作。


