使用 Docker 运行 Meilisearch
在本指南中,您将学习如何使用 Docker 下载和运行 Meilisearch,配置其行为,以及管理您的 Meilisearch 数据。
Docker 是一个将应用程序捆绑到容器中的工具。Docker 容器确保您的应用程序在不同的环境中以相同的方式运行。当使用 Docker 进行开发时,我们建议遵循官方说明安装 Docker Desktop。
使用 Docker 下载 Meilisearch
Docker 容器以镜像的形式分发。要使用 Meilisearch,请使用 docker pull
命令下载 Meilisearch 镜像
docker pull getmeili/meilisearch:v1.14
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.14
配置 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.14
使用 CLI 参数传递实例选项
如果想使用 Docker 将命令行参数传递给 Meilisearch,则必须在 docker run
命令的末尾添加一行,显式启动 meilisearch
二进制文件
docker run -it --rm \
-p 7700:7700 \
-v $(pwd)/meili_data:/meili_data \
getmeili/meilisearch:v1.14 \
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.14
上面的示例使用了 $(pwd)/meili_data
,这是主机上的一个目录。根据您的操作系统,从主机挂载卷到容器可能会导致性能损失,仅建议在开发应用程序时使用。
生成转储和更新 Meilisearch
要导出转储,请使用我们的转储指南中描述的创建转储端点。任务完成后,您可以在使用 -v
传递的卷内的 /meili_data/dumps
中访问转储文件。
要导入 dump 文件,请使用 Meilisearch 的 --import-dump
命令行选项,并指定 dump 文件的路径。确保该路径指向 Docker 可访问的卷。
docker run -it --rm \
-p 7700:7700 \
-v $(pwd)/meili_data:/meili_data \
getmeili/meilisearch:v1.14 \
meilisearch --import-dump /meili_data/dumps/20200813-042312213.dump
请注意,导出和导入 dump 文件都需要使用命令行参数。 有关如何使用 CLI 选项和 Docker 运行 Meilisearch 的更多信息,请参阅本指南的相关章节。
警告
如果您按照数据持久性章节中的说明将数据存储在持久卷中,则在导入 dump 文件之前,必须删除该卷中的 /meili_data/data.ms
。
使用 dump 文件在不同的 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.14 \
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.14 \
meilisearch --import-snapshot /meili_data/snapshots/data.ms.snapshot
使用快照进行备份,或在同一版本的两个 Meilisearch 实例之间迁移数据。请阅读我们的指南,了解更多关于快照的信息。