Mac Intel 芯片 Docker 一键部署 Neo4j 最新版本教程

🚀 Mac Intel 芯片 Docker 一键部署 Neo4j 最新版本教程

Neo4j 是一款领先的 图数据库 ,广泛应用于 社交网络分析、推荐系统、知识图谱 等场景。本文将手把手教你在 Mac Intel 芯片 上通过 Docker 部署最新版本 Neo4j,并附带一键启动脚本、数据持久化方案和 Python 示例连接代码。


📖 目录

  1. 前提条件

  2. 拉取 Neo4j Docker 镜像

  3. 编写一键管理脚本

  4. 使用脚本管理容器

  5. 常见问题与优化

  6. Neo4j Web 界面访问

  7. Python 示例连接 Neo4j

  8. 总结


1️⃣ 前提条件

  • 已安装 Docker Desktop for Mac (Intel 芯片) 并能正常运行

  • Docker 分配内存建议 ≥ 4GB

  • 基本命令行操作能力

检查 Docker 是否可用:

复制代码
docker --version
docker info

2️⃣ 拉取 Neo4j Docker 镜像

执行以下命令拉取最新版本的 Neo4j:

复制代码
docker pull neo4j:latest

默认端口说明:

  • 7474 → HTTP(Neo4j 浏览器界面)

  • 7687 → Bolt 协议(程序访问)


3️⃣ 编写一键管理脚本

为了方便使用,我们写一个 一键管理脚本,支持启动、停止、重启、删除和查看状态。

新建脚本文件:

复制代码
nano neo4j-docker.sh

粘贴以下内容:

复制代码
#!/bin/bash
# neo4j-docker.sh
# 一键管理 Neo4j Docker 容器 (Mac Intel)

# === 配置项 ===
CONTAINER_NAME="neo4j"
NEO4J_USER="neo4j"
NEO4J_PASSWORD="Neo4j1234"  # ⚠️ 密码必须 >=8位 且包含字母+数字
HTTP_PORT=7474
BOLT_PORT=7687
DATA_DIR="$HOME/neo4j/data"

# === 帮助信息 ===
function usage() {
    echo "用法: $0 [start|stop|restart|remove|status]"
    exit 1
}

# === 启动容器 ===
function start() {
    mkdir -p "$DATA_DIR"
    chmod -R 777 "$DATA_DIR"
    docker run -d \
        --name $CONTAINER_NAME \
        -p $HTTP_PORT:7474 \
        -p $BOLT_PORT:7687 \
        -v $DATA_DIR:/data \
        -e NEO4J_AUTH=$NEO4J_USER/$NEO4J_PASSWORD \
        neo4j:latest
    echo "✅ Neo4j 启动完成 → http://localhost:$HTTP_PORT"
}

# === 停止容器 ===
function stop() {
    docker stop $CONTAINER_NAME
    echo "⏹️ Neo4j 已停止"
}

# === 重启容器 ===
function restart() {
    stop
    start
}

# === 删除容器 ===
function remove() {
    docker rm -f $CONTAINER_NAME
    echo "🗑️ Neo4j 容器已删除"
}

# === 查看状态 ===
function status() {
    docker ps -a | grep $CONTAINER_NAME || echo "ℹ️ 容器不存在"
}

# === 主入口 ===
case "$1" in
    start) start ;;
    stop) stop ;;
    restart) restart ;;
    remove) remove ;;
    status) status ;;
    *) usage ;;
esac

保存并退出。

赋予执行权限:

复制代码
chmod +x neo4j-docker.sh

4️⃣ 使用脚本管理容器

启动 Neo4j:

复制代码
./neo4j-docker.sh start

查看状态:

复制代码
./neo4j-docker.sh status

停止容器:

复制代码
./neo4j-docker.sh stop

删除容器:

复制代码
./neo4j-docker.sh remove

实时查看日志:

复制代码
docker logs -f neo4j

5️⃣ 常见问题与优化

  1. 容器启动即退出

    • 密码不符合 Neo4j 要求(必须 ≥8 位,包含字母和数字)

    • 本地挂载目录权限不足,解决:

      复制代码
      chmod -R 777 ~/neo4j/data
  2. 端口被占用

    修改脚本中的 HTTP_PORTBOLT_PORT,避免冲突。

  3. 数据持久化

    数据会保存在 $HOME/neo4j/data,即使容器删除也不会丢失。


6️⃣ Neo4j Web 界面访问

启动后,浏览器访问:

复制代码
http://localhost:7474

默认用户名:neo4j

密码:脚本中设置的密码(例如 Neo4j1234

你可以在页面中执行 Cypher 查询,例如:

复制代码
CREATE (p:Person {name: "Emilie"}) RETURN p;

7️⃣ Python 示例连接 Neo4j

如果你想用 Python 操作 Neo4j,可以使用 neo4j 官方驱动:

安装依赖:

复制代码
pip install neo4j

示例代码:

复制代码
from neo4j import GraphDatabase

# 配置连接信息
uri = "bolt://localhost:7687"
user = "neo4j"
password = "Neo4j1234"

driver = GraphDatabase.driver(uri, auth=(user, password))

# 写入数据
def create_person(tx, name):
    tx.run("CREATE (p:Person {name: $name})", name=name)

# 查询数据
def get_persons(tx):
    result = tx.run("MATCH (p:Person) RETURN p.name AS name")
    return [record["name"] for record in result]

with driver.session() as session:
    session.write_transaction(create_person, "Alice")
    session.write_transaction(create_person, "Bob")

    persons = session.read_transaction(get_persons)
    print("✅ 数据库中的 Person 节点:", persons)

driver.close()

运行后,你会在数据库中看到 AliceBob 两个节点。


8️⃣ 总结

本文介绍了如何在 Mac Intel 芯片 上通过 Docker 一键部署 Neo4j 最新版本,并提供了:

  • 📝 一键管理脚本(启动/停止/重启/删除/状态)

  • ⚡ 数据持久化和端口配置方法

  • 🐍 Python 驱动示例代码

这样你就可以快速上手 Neo4j,在本地构建自己的 图数据库应用 🚀。


👉 如果你也在用 Neo4j,可以在评论区分享你的应用场景,比如:知识图谱、推荐系统、社交分析等。

相关推荐
猫吃了源码3 小时前
k9s简介和安装
linux·docker·kubernetes
云原生指北4 小时前
Docker Sandboxes 上手:从安装到第一次跑 Agent
运维·docker·容器
Web Security Loop4 小时前
MAC卸载JDK环境
java·macos·jdk
ziyun6668884 小时前
Docker 容器化 Web 服务架构搭建与自动化运维项目
运维·docker·架构
骇客野人7 小时前
Docker Compose 部署多个独立 Jar 服务完整实操步骤
docker·容器·jar
云川之下9 小时前
【k8s】Docker inspect 命令
docker·容器·kubernetes
倔强的石头10610 小时前
飞牛OS部署Mtab:Docker搭建自托管书签导航并实现远程访问
运维·docker·容器
apgk11 天前
基于Canal实现mysql数据同步到消息队列(RabbitMQ/Kafka)详细操作教程
docker·kafka·rabbitmq
fatcoder1 天前
玩转Docker 06 — 容器网络
前端·后端·docker
AR_xsy1 天前
docker--资源配额 配置
运维·docker·容器