Docker06-Neo4j启动

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插件步骤

  1. 下载APOC Core JAR包(版本需与Neo4j一致):https://github.com/neo4j/apoc/releases

  2. 复制到plugins目录:

    bash 复制代码
    docker cp apoc-5.x.x-core.jar neo4j:/plugins/
  3. 重启容器:

    bash 复制代码
    docker restart neo4j

验证APOC安装

在Neo4j Browser中执行:

cypher 复制代码
RETURN apoc.version()  -- 应返回APOC版本号

4-推荐使用Neo4jDesktop进行安装

Neo4j Desktop是Neo4j官方提供的图形化管理工具,集成了数据库管理、可视化、应用开发等功能。

下载安装

  1. 访问:https://neo4j.com/download/
  2. 下载对应操作系统版本(Windows/macOS/Linux)
  3. 运行安装程序
相关推荐
Wenhao.1 天前
Docker 安装 neo4j
docker·容器·neo4j
RDCJM2 天前
Neo4j图数据库学习(二)——SpringBoot整合Neo4j
数据库·学习·neo4j
机器不学习我也不学习4 天前
TensorFlow环境安装
neo4j
码农老李5 天前
vxWorks7.0 Simpc运行tensorflow lite example
人工智能·tensorflow·neo4j
小鸡吃米…20 天前
TensorFlow 实现异或(XOR)运算
人工智能·python·tensorflow·neo4j
坐吃山猪20 天前
Neo4j04_数据库事务
数据库·oracle·neo4j
小鸡吃米…20 天前
TensorFlow 实现梯度下降优化
人工智能·python·tensorflow·neo4j
KG_LLM图谱增强大模型20 天前
图谱驱动大模型智能体普惠时代:Neo4j Aura Agent正式全面上线
neo4j
小鸡吃米…22 天前
TensorFlow 分布式计算
neo4j