搭配 Docker 使用 Meilisearch
在本指南中,您將學習如何使用 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 執行個體之間遷移資料。請閱讀我們的指南,以深入了解快照。