将 Meilisearch 与 Docker 结合使用
在本指南中,您将学习如何使用 Docker 下载和运行 Meilisearch,配置其行为以及管理 Meilisearch 数据。
Docker 是一种将应用程序打包到容器中的工具。 Docker 容器可确保您的应用程序在不同的环境中以相同的方式运行。在开发中使用 Docker 时,我们建议按照官方说明安装 Docker Desktop。
使用 Docker 下载 Meilisearch
Docker 容器以镜像的形式分发。要使用 Meilisearch,请使用 docker pull
命令下载 Meilisearch 镜像
docker pull getmeili/meilisearch:v1.12
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.12
配置 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.12
使用 CLI 参数传递实例选项
如果您想使用 Docker 将命令行参数传递给 Meilisearch,您必须在 docker run
命令的末尾添加一行,明确启动 meilisearch
二进制文件
docker run -it --rm \
-p 7700:7700 \
-v $(pwd)/meili_data:/meili_data \
getmeili/meilisearch:v1.12 \
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.12
上面的示例使用 $(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.12 \
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.12 \
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.12 \
meilisearch --import-snapshot /meili_data/snapshots/data.ms.snapshot
使用快照进行备份或在两个相同版本的 Meilisearch 实例之间迁移数据。 请阅读我们的指南,详细了解有关快照的更多信息。