在本指南中,您将学习如何使用 Docker 下载和运行 Meilisearch,配置其行为,以及管理您的 Meilisearch 数据。

Docker 是一种将应用程序打包到容器中的工具。Docker 容器确保您的应用程序在不同环境中以相同方式运行。在开发中使用 Docker 时,我们建议遵循官方说明安装 Docker Desktop

使用 Docker 下载 Meilisearch

Docker 容器以镜像形式分发。要使用 Meilisearch,请使用 docker pull 命令下载 Meilisearch 镜像

docker pull getmeili/meilisearch:v1.15

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.15

配置 Meilisearch

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

通过环境变量传递实例选项

要将环境变量传递给 Docker,请在 docker run 命令中添加 -e 参数。以下示例使用主密钥启动 Meilisearch

docker run -it --rm \
  -p 7700:7700 \
  -e MEILI_MASTER_KEY='MASTER_KEY'\
  -v $(pwd)/meili_data:/meili_data \
  getmeili/meilisearch:v1.15

通过 CLI 参数传递实例选项

如果要通过 Docker 将命令行参数传递给 Meilisearch,则必须在 docker run 命令末尾添加一行,明确启动 meilisearch 二进制文件

docker run -it --rm \
  -p 7700:7700 \
  -v $(pwd)/meili_data:/meili_data \
  getmeili/meilisearch:v1.15 \
  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.15

上面的示例使用 $(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.15 \
  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.15 \
  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.15 \
  meilisearch --import-snapshot /meili_data/snapshots/data.ms.snapshot

快照用于备份或在两个相同版本的 Meilisearch 实例之间迁移数据。在我们的指南中阅读有关快照的更多信息。