在本指南中,您将学习如何使用 Docker 下载和运行 Meilisearch,配置其行为并管理您的 Meilisearch 数据。 Docker 是一种将应用程序打包到容器中的工具。Docker 容器可确保您的应用程序在不同环境中以相同方式运行。在开发中使用 Docker 时,我们建议遵循官方说明安装 Docker Desktop

使用 Docker 下载 Meilisearch

Docker 容器以镜像形式分发。要使用 Meilisearch,请使用 `docker pull` 命令下载 Meilisearch 镜像
docker pull getmeili/meilisearch:v1.16
Meilisearch 引擎每次发布都会部署一个新的 Docker 镜像。每个镜像都标有相应的 Meilisearch 版本,如上例中冒号 `:` 后的文本所示。您可以在 Docker Hub 上查看可用 Meilisearch Docker 镜像的完整列表
`latest` 标签将始终下载最新的 Meilisearch 版本。Meilisearch 不建议使用它,因为如果设置每台机器之间间隔时间较长,可能会导致不同机器运行不同的镜像。

使用 Docker 运行 Meilisearch

完成上一步后,使用 `docker run` 启动 Meilisearch 镜像
docker run -it --rm \
  -p 7700:7700 \
  -v $(pwd)/meili_data:/meili_data \
  getmeili/meilisearch:v1.16

配置 Meilisearch

Meilisearch 在启动期间接受许多实例选项。您可以通过两种方式配置这些选项:环境变量和 CLI 参数。请注意,某些选项仅作为 CLI 参数可用——有关更多详细信息,请查阅我们的配置参考

使用环境变量传递实例选项

要将环境变量传递给 Docker,请将 `-e` 参数添加到 `docker run`。以下示例使用主密钥启动 Meilisearch
docker run -it --rm \
  -p 7700:7700 \
  -e MEILI_MASTER_KEY='MASTER_KEY'\
  -v $(pwd)/meili_data:/meili_data \
  getmeili/meilisearch:v1.16

使用 CLI 参数传递实例选项

如果您想使用 Docker 将命令行参数传递给 Meilisearch,您必须在 `docker run` 命令末尾添加一行,明确启动 `meilisearch` 二进制文件
docker run -it --rm \
  -p 7700:7700 \
  -v $(pwd)/meili_data:/meili_data \
  getmeili/meilisearch:v1.16 \
  meilisearch --master-key="MASTER_KEY"

管理数据

使用 Docker 时,您的工作目录是 `/meili_data`。这意味着您的数据库文件位置是 `/meili_data/data.ms`。

数据持久性

默认情况下,写入 Docker 容器的数据会在容器停止运行时被删除。此数据包括您的索引及其存储的文档。 要使数据在重启后保持不变,请使用 `-v` 命令行选项运行 Docker 并指定一个专用卷:
docker run -it --rm \
  -p 7700:7700 \
  -v $(pwd)/meili_data:/meili_data \
  getmeili/meilisearch:v1.16
上面的示例使用 `$(pwd)/meili_data`,这是主机中的一个目录。根据您的操作系统,将卷从主机挂载到容器可能会导致性能损失,仅建议在开发应用程序时使用。

生成数据转储并更新 Meilisearch

要导出数据转储,请按照我们的数据转储指南中的说明使用创建数据转储端点。任务完成后,您可以在使用 `-v` 传递的卷内的 `/meili_data/dumps` 中访问数据转储文件。 要导入数据转储,请使用 Meilisearch 的 `--import-dump` 命令行选项并指定数据转储文件的路径。确保路径指向 Docker 可访问的卷:
docker run -it --rm \
  -p 7700:7700 \
  -v $(pwd)/meili_data:/meili_data \
  getmeili/meilisearch:v1.16 \
  meilisearch --import-dump /meili_data/dumps/20200813-042312213.dump
请注意,导出和导入数据转储需要使用命令行参数。有关如何使用 CLI 选项和 Docker 运行 Meilisearch 的更多信息,请参阅本指南的相关部分。
如果您按照数据持久性部分的说明将数据存储在持久卷中,则必须在导入数据转储之前删除该卷中的 `/meili_data/data.ms`。
使用数据转储在不同的 Meilisearch 版本之间迁移数据。在我们的专用指南中阅读有关更新 Meilisearch 的更多信息。

快照

要使用 Docker 生成 Meilisearch 快照,请使用 `--schedule-snapshot` 和 `--snapshot-dir` 启动 Meilisearch
docker run -it --rm \
  -p 7700:7700 \
  -v $(pwd)/meili_data:/meili_data \
  getmeili/meilisearch:v1.16 \
  meilisearch --schedule-snapshot --snapshot-dir /meili_data/snapshots
`--snapshot-dir` 应指向 Meilisearch 的 Docker 工作目录 `/meili_data` 中的一个文件夹。生成后,快照将在配置的目录中可用。 要导入快照,请使用 `--import-snapshot` 选项启动 Meilisearch:
docker run -it --rm \
  -p 7700:7700 \
  -v $(pwd)/meili_data:/meili_data \
  getmeili/meilisearch:v1.16 \
  meilisearch --import-snapshot /meili_data/snapshots/data.ms.snapshot
快照用于备份或在相同版本的两个 Meilisearch 实例之间迁移数据。在我们的指南中阅读有关快照的更多信息。
© . This site is unofficial and not affiliated with Meilisearch.