在 Docker 中开始使用 Neo4j

Docker 可从 https://docker.net.cn/get-started 下载,适用于 macOS、Windows 和 Linux 操作系统。DockerHub 托管了一个 官方 Neo4j 镜像,它为各种版本提供了一个标准的、可立即运行的 Neo4j 社区版和企业版的软件包。

获取 Neo4j 镜像

Neo4j 镜像的变体根据社区版/企业版和用作基础镜像的操作系统进行标记。

Neo4j 版本

社区版和企业版均提供标签。特定版本的企业版标签在版本号后带有 -enterprise 后缀,例如:neo4j:5.25.1-enterprise。社区版标签没有后缀,例如 neo4j:5.25.1。最新的 Neo4j 企业版发布版可作为 neo4j:enterprise 获取。

Neo4j 企业版许可

要使用 Neo4j 企业版,您必须通过设置环境变量 NEO4J_ACCEPT_LICENSE_AGREEMENT=yes 来接受许可协议。

© Network Engine for Objects in Lund AB. 2023. 保留所有权利。未经 Neo4j, Inc. 或其关联公司的适当商业许可,不得使用本软件。

可以通过表单 联系 Neo4j 发送电子邮件咨询。

更多信息请访问:https://neo4j.ac.cn/licensing/

基础操作系统

Neo4j 镜像提供 debian:bullseye-slimredhat/ubi9-minimal:latest 作为基础镜像。默认值为 debian:bullseye-slim

如果您不确定使用哪个基础镜像,或者没有偏好,只需使用默认的 neo4j:5.25.1

要指定使用哪个基础镜像,镜像标签可以选择带有 -bullseye-ubi9 后缀。

例如

neo4j:5.25.1-bullseye            # debian 11 community
neo4j:5.25.1-enterprise-bullseye # debian 11 enterprise
neo4j:5.25.1-ubi9              # redhat UBI9 community
neo4j:5.25.1-enterprise-ubi9   # redhat UBI9 enterprise
neo4j:5.25.1                   # debian 11 community
neo4j:5.25.1-enterprise        # debian 11 enterprise
表 1. 基础镜像和相应的标签后缀。
标签后缀 基础镜像

-bullseye

debian:bullseye-slim

-ubi9

redhat/ubi9-minimal:latest

未指定

debian:bullseye-slim

Red Hat UBI9 变体镜像仅从 5.17.0 及更高版本开始提供。对于更早的 Neo4j 版本,请不要指定基础镜像。

使用 Neo4j Docker 镜像

您可以使用以下命令启动 Neo4j 容器。请注意,此 Neo4j 容器不会在重启之间持久保存数据,并且将使用默认的用户名/密码。

docker run \
    --restart always \
    --publish=7474:7474 --publish=7687:7687 \
    neo4j:5.25.1

您可以通过在 Web 浏览器中打开 http://localhost:7474/(Neo4j 的浏览器界面)来试用您的 Neo4j 容器。默认情况下,Neo4j 需要身份验证,并在首次连接时提示您使用 neo4j/neo4j 的用户名/密码登录。然后会提示您设置新密码。

默认的最小密码长度为 8 个字符。

使用 dbms.security.auth_minimum_password_length 配置设置更改默认最小值。

以下部分提供了有关如何设置初始密码、配置 Neo4j 以在重启之间持久保存数据以及使用 Neo4j Docker 镜像的更多信息。

在重启之间持久保存数据

--volume 选项将本地文件夹映射到容器,您可以在其中在重启之间持久保存数据。要将数据库内容持久保存到容器之间,请在启动容器时将卷装载到 /data 目录。

docker run \
    --restart always \
    --publish=7474:7474 --publish=7687:7687 \
    --env NEO4J_AUTH=neo4j/your_password \
    --volume=/path/to/your/data:/data \
    neo4j:5.25.1

您要装载的文件夹必须在启动 Docker 之前存在,否则,Neo4j 由于权限错误而无法启动。

有关装载卷的更多信息,请参阅 使用 Docker 卷持久保存数据

使用 NEO4J_AUTH 设置初始密码

在 Docker 容器中使用 Neo4j 时,您可以通过在运行指令中指定 NEO4J_AUTH 直接设置数据库的初始密码。

docker run \
    --restart always \
    --publish=7474:7474 --publish=7687:7687 \
    --env NEO4J_AUTH=neo4j/your_password \
    neo4j:5.25.1

或者,您可以通过将 NEO4J_AUTH 指定为 none 来禁用身份验证。

--env NEO4J_AUTH=none

请注意,目前无法从 neo4j 更改初始用户名。

设置 NEO4J_AUTH 不会覆盖现有身份验证。

如果您已装载包含现有数据库的 /data 卷,设置 NEO4J_AUTH 将不会产生任何影响,因为该数据库已经配置了身份验证。Neo4j Docker 服务将启动,但您需要与数据库关联的用户名和密码才能登录。

有用的 docker run 选项

此表列出了一些可用的选项。

表 2. docker run 的选项。
选项 描述 示例

--name

为您的容器命名以避免使用通用 ID。

docker run --name myneo4j neo4j

-p

指定要公开的容器端口。

docker run -p7687:7687 neo4j

-d

分离容器以便在后台运行。

docker run -d neo4j

-v

绑定装载卷。

docker run -v $HOME/neo4j/data:/data neo4j

--env

将配置设置为 Neo4j 数据库的环境变量。

docker run --env NEO4J_AUTH=neo4j/your_password neo4j

--user

以给定用户身份运行 neo4j,而不是 neo4j

docker run --user="$(id -u):$(id -g)" neo4j

--restart

控制 Neo4j 容器在退出时或 Docker 重启时是否自动启动。

docker run --restart always

--help

输出 docker run 选项的完整列表。

docker run --help

--restart always 选项将 Neo4j 容器(以及 Neo4j)设置为在 Docker 守护程序每次重启时自动重启。

如果您不再希望容器在机器启动时自动启动,可以使用标志 no 禁用此设置,例如 docker update --restart=no <containerID>
有关 Docker 重启策略的更多信息,请参阅 官方 Docker 文档

Neo4j Docker 镜像的离线安装

Docker 提供了 docker save 命令,用于将镜像下载到 .tar 包中,以便可以离线使用,或者传输到没有互联网访问的机器上。

这是一个将 neo4j:5.25.1 镜像保存到 .tar 文件中的示例命令。

docker save -o neo4j-5.25.1.tar neo4j:5.25.1

要从 docker save 创建的 .tar 文件加载 Docker 镜像,请使用 docker load 命令。例如

docker load --input neo4j-5.25.1.tar

有关使用 docker savedocker load 命令的完整说明,请参阅