Docker06-Neo4j启动
使用脚本进行Neo4j服务器的搭建,方便快速进行本地的开发测试;但是更推荐使用Neo4jDesktop进行安装(界面更人性化)

1-基础Docker命令方式
bash
# 1. 拉取镜像(最新版)
docker pull neo4j:latest
# 或指定版本
docker pull neo4j:5.12.0
# 2. 创建挂载目录(数据持久化)
mkdir -p /home/neo4j/data /home/neo4j/logs /home/neo4j/conf /home/neo4j/import /home/neo4j/plugins
# 3. 运行容器
docker run \
--name neo4j \
-d \
-p 7474:7474 \
-p 7687:7687 \
-v /home/neo4j/data:/data \
-v /home/neo4j/logs:/logs \
-v /home/neo4j/conf:/conf \
-v /home/neo4j/import:/import \
-v /home/neo4j/plugins:/plugins \
-e NEO4J_AUTH=neo4j/your_password \
--restart=always \
neo4j:latest
参数说明:
-p 7474:7474:HTTP端口(Browser访问)-p 7687:7687:Bolt协议端口(应用程序连接)-e NEO4J_AUTH=neo4j/password:设置初始用户名/密码--restart=always:Docker重启后自动启动-v:挂载卷实现数据持久化
关键配置(必须) :
创建/home/neo4j/conf/neo4j.conf文件,添加:
properties
# 允许远程连接
server.default_listen_address=0.0.0.0
# 或旧版配置
dbms.connectors.default_listen_address=0.0.0.0
dbms.connector.bolt.listen_address=0.0.0.0:7687
dbms.connector.http.listen_address=0.0.0.0:7474
验证安装:
bash
docker ps -a # 查看容器状态(STATUS应为Up)
# 访问 http://localhost:7474
2-基础Docker命令方式-脚本版本
shell
#!/usr/bin/env bash
# file: 02_run_neo4j_full_mount.sh
# === 配置路径 ===
BASE_DIR=/home/neo4j
DATA_DIR="$BASE_DIR/data"
LOGS_DIR="$BASE_DIR/logs"
CONF_DIR="$BASE_DIR/conf"
IMPORT_DIR="$BASE_DIR/import"
PLUGINS_DIR="$BASE_DIR/plugins"
CONF_FILE="$CONF_DIR/neo4j.conf"
# Neo4j 默认以 UID 747 运行
NEO4J_UID=747
NEO4J_GID=747
# === 1. 确保所有目录存在且权限正确 ===
echo "创建并设置目录权限..."
for dir in "$DATA_DIR" "$LOGS_DIR" "$CONF_DIR" "$IMPORT_DIR" "$PLUGINS_DIR"; do
mkdir -p "$dir"
# 设置 neo4j 用户可写
chown -R "$NEO4J_UID:$NEO4J_GID" "$dir" 2>/dev/null || {
echo "警告: 无法更改 $dir 的属主,请确保当前用户有权限或使用 sudo"
}
chmod 755 "$dir"
done
# 如果宿主机开了 SELinux,需加权限(可选)
# chcon -Rt svirt_sandbox_file_t "$BASE_DIR"
# === 2. 创建关键配置文件(如果不存在)===
if [ ! -f "$CONF_FILE" ]; then
echo "创建 Neo4j 配置文件: $CONF_FILE"
cat > "$CONF_FILE" << 'EOF'
# ============================================
# Neo4j 关键配置 - 允许远程连接
# ============================================
# 新版配置 (Neo4j 4.x/5.x)
server.default_listen_address=0.0.0.0
# 旧版兼容配置 (Neo4j 3.x)
dbms.connectors.default_listen_address=0.0.0.0
dbms.connector.bolt.listen_address=0.0.0.0:7687
dbms.connector.http.listen_address=0.0.0.0:7474
# 日志配置
server.logs.config=INFO
EOF
# 设置配置文件权限
chmod 644 "$CONF_FILE"
chown "$NEO4J_UID:$NEO4J_GID" "$CONF_FILE" 2>/dev/null || true
echo "配置文件已创建,包含远程连接设置"
else
echo "检测到已有配置文件: $CONF_FILE"
# 检查是否包含关键配置
if ! grep -q "server.default_listen_address=0.0.0.0\|dbms.connectors.default_listen_address=0.0.0.0" "$CONF_FILE"; then
echo "警告: 配置文件可能缺少远程连接设置,建议添加:"
echo " server.default_listen_address=0.0.0.0"
fi
fi
# 确保配置文件可读
chmod 644 "$CONF_FILE"
# === 3. 设置认证信息(可通过环境变量覆盖)===
NEO4J_USER=${NEO4J_USER:-neo4j}
NEO4J_PASS=${NEO4J_PASS:-your_password}
echo "使用认证用户: $NEO4J_USER"
# === 4. 运行容器 ===
echo "启动 Neo4j 容器..."
docker run -d --name neo4j-full \
-p 7474:7474 \
-p 7687:7687 \
-v "$DATA_DIR":/data \
-v "$LOGS_DIR":/logs \
-v "$CONF_FILE":/conf/neo4j.conf:ro \
-v "$IMPORT_DIR":/import \
-v "$PLUGINS_DIR":/plugins \
-e NEO4J_AUTH="$NEO4J_USER/$NEO4J_PASS" \
--restart=always \
neo4j:latest
# === 5. 检查启动状态 ===
sleep 3
if docker ps | grep -q "neo4j-full"; then
echo ""
echo "=========================================="
echo "Neo4j 容器启动成功"
echo "=========================================="
echo "浏览器访问: http://localhost:7474"
echo "Bolt 连接: bolt://localhost:7687"
echo "用户名: $NEO4J_USER"
echo "密码: $NEO4J_PASS"
echo ""
echo "配置文件位置: $CONF_FILE"
echo "数据目录位置: $DATA_DIR"
echo "=========================================="
else
echo "容器启动失败,查看日志:"
docker logs neo4j-full
exit 1
fi
3-DockerCompose并集成APOC插件
docker-compose.yml 配置:
yaml
version: '3.9'
services:
neo4j:
image: neo4j:5.12.0
container_name: neo4j
ports:
- "7474:7474" # HTTP
- "7687:7687" # Bolt
volumes:
- ./neo4j/data:/data
- ./neo4j/logs:/logs
- ./neo4j/import:/import
- ./neo4j/plugins:/plugins
- ./neo4j/conf:/conf
environment:
- NEO4J_AUTH=neo4j/password
- NEO4J_PLUGINS=["apoc"] # 自动安装APOC插件
- NEO4J_dbms_security_procedures_unrestricted=apoc.* # 允许APOC过程
restart: always
手动安装APOC插件步骤:
-
下载APOC Core JAR包(版本需与Neo4j一致):https://github.com/neo4j/apoc/releases
-
复制到plugins目录:
bashdocker cp apoc-5.x.x-core.jar neo4j:/plugins/ -
重启容器:
bashdocker restart neo4j
验证APOC安装 :
在Neo4j Browser中执行:
cypher
RETURN apoc.version() -- 应返回APOC版本号
4-推荐使用Neo4jDesktop进行安装
Neo4j Desktop是Neo4j官方提供的图形化管理工具,集成了数据库管理、可视化、应用开发等功能。
下载安装:
- 访问:https://neo4j.com/download/
- 下载对应操作系统版本(Windows/macOS/Linux)
- 运行安装程序
