跳到主要内容
版本:v2.6.x

在 Docker 中运行 Milvus(Windows)

本页面演示了如何使用 Docker Desktop for Windows 在 Windows 上运行 Milvus。

先决条件

在 Docker 中运行 Milvus

Milvus 提供了一个安装脚本,用于将其作为 Docker 容器进行安装。在 Microsoft Windows 上安装 Docker Desktop 后,您可以通过 PowerShell 或以管理员模式运行的 Windows 命令提示符,以及 WSL 2 访问 Docker CLI。

通过 PowerShell 或 Windows 命令提示符

如果您更熟悉 PowerShell 或 Windows 命令提示符,请按以下命令操作。

  1. 右键单击 Docker Desktop 并选择**“以管理员身份运行**”,以管理员模式打开 Docker Desktop。

  2. 下载安装脚本,并将其保存为standalone.bat

    C:\>Invoke-WebRequest https://raw.githubusercontent.com/milvus-io/milvus/refs/heads/master/scripts/standalone_embed.bat -OutFile standalone.bat

  3. 运行下载的脚本,以 Docker 容器的形式启动 Milvus。

    C:\>standalone.bat start
    Wait for Milvus starting...
    Start successfully.
    To change the default Milvus configuration, edit user.yaml and restart the service.

    运行安装脚本后:

    • 一个名为Milvus Standalone 的Docker 容器已在端口19530 上启动。

    • 一个嵌入式 etcd 已随 Milvus 一起安装在同一容器中,并监听2379 端口。其配置文件映射到当前文件夹中的embedEtcd.yaml

    • Milvus 数据卷已映射到当前目录下的volumes/milvus目录中。

    您可以使用以下命令管理 Milvus 容器及存储的数据。

    # Stop Milvus
    C:\>standalone.bat stop
    Stop successfully.

    # Delete Milvus container
    C:\>standalone.bat delete
    Delete Milvus container successfully. # Container has been removed.
    Delete successfully. # Data has been removed.

在 WSL 2 中

如果您希望在 Windows 上使用 Linux 命令和 shell 脚本启动 Milvus,请确保已安装 WSL 2。有关如何安装 WSL 2 的详细信息,请参阅这篇Microsoft 文章

  1. 启动 WSL 2。

    C:\>wsl --install
    Ubuntu already installed.
    Starting Ubuntu...

  2. 下载安装脚本

    # Download the installation script
    $ curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh

    # Start the Docker container
    $ bash standalone_embed.sh start

  3. 以 Docker 容器形式启动 Milvus。

    $ bash standalone_embed.sh start
    Wait for Milvus Starting...
    Start successfully.
    To change the default Milvus configuration, add your settings to the user.yaml file and then restart the service.

    您可以使用以下命令来管理 Milvus 容器及其存储的数据。

    # Stop Milvus
    $ bash standalone_embed.sh stop
    Stop successfully.

    # Delete Milvus data
    $ bash standalone_embed.sh stop
    Delete Milvus container successfully.
    Delete successfully.

使用 Docker Compose 运行 Milvus

在 Microsoft Windows 上安装 Docker Desktop 后,您可以在管理员模式下通过 PowerShell 或 Windows 命令提示符访问 Docker CLI。您可以在 PowerShell、Windows 命令提示符或 WSL 2 中运行 Docker Compose 来启动 Milvus。

通过 PowerShell 或 Windows 命令提示符

  1. 右键单击 Docker Desktop 并选择**“以管理员身份运行**”,以管理员模式打开 Docker Desktop。

  2. 在 PowerShell 或 Windows 命令提示符中运行以下命令,以下载 Milvus Standalone 版本的 Docker Compose 配置文件并启动 Milvus。

    # Download the configuration file and rename it as docker-compose.yml
    C:\>Invoke-WebRequest https://github.com/milvus-io/milvus/releases/download/v2.6.19/milvus-standalone-docker-compose.yml -OutFile docker-compose.yml

    # Start Milvus
    C:\>docker compose up -d
    Creating milvus-etcd ... done
    Creating milvus-minio ... done
    Creating milvus-standalone ... done

    根据您的网络连接情况,下载 Milvus 安装所需的镜像可能需要一段时间。一旦名为milvus-standalonemilvus-miniomilvus-etcd的容器启动,您将看到

    • milvus-etcd容器不会向主机暴露任何端口,并将数据映射到当前文件夹中的volumes/etcd目录中。

    • milvus-minio容器在本地监听90909091端口,使用默认身份验证凭据,并将数据映射到当前文件夹中的volumes/minio目录。

    • Milvus Standalone容器使用默认设置在本地提供19530端口服务,并将数据映射到当前文件夹中的volumes/milvus目录。

如果您已安装 WSL 2,还可以调用 Linux 版本的 Docker Compose 命令。

在 WSL 2 中

该操作流程与在 Linux 系统中使用 Docker Compose 安装 Milvus 类似。

  1. 启动 WSL 2。

    C:\>wsl --install
    Ubuntu already installed.
    Starting Ubuntu...

  2. 下载 Milvus 配置文件。

    $ wget https://github.com/milvus-io/milvus/releases/download/v2.6.19/milvus-standalone-docker-compose.yml -O docker-compose.yml

  3. 启动 Milvus。

    $ sudo docker compose up -d

    Creating milvus-etcd ... done
    Creating milvus-minio ... done
    Creating milvus-standalone ... done

常见问题

如何处理“Docker Engine stopped ”错误?

在 Windows 中安装 Docker Desktop 后,如果计算机配置不正确,可能会遇到“Docker Engine stopped ”错误。此时,您可能需要进行以下检查:

  1. 检查虚拟化功能是否已启用。

    您可以通过查看**“任务管理器**”中的**“性能**”选项卡来检查虚拟化功能是否已启用。

Virtualization in Task Manager

任务管理器中的虚拟化

如果虚拟化功能处于禁用状态,您可能需要检查主板固件的 BIOS 设置。在 BIOS 设置中启用虚拟化的方法因主板厂商而异。以华硕(ASUS)主板为例,您可以参考这篇关于启用虚拟化的文章

随后,您需要重启计算机并启用 Hyper-V。详情请参阅这篇微软文章

  1. 检查 Docker Desktop 服务是否已启动。

    您可以运行以下命令来启动 Docker Desktop 服务。

    C:\>net start com.docker.service
    The Docker for Windows Service service is starting.
    The Docker for Windows Service service was started successfully.

  2. 检查 WSL 是否已正确安装。

    您可以运行以下命令来安装或更新 WSL 2。

    C:\>wsl --update
    Checking for updates.
    The most recent version of Windows Subsystem for Linux is already installed.

  3. 检查 Docker 守护进程是否已启动。

    您需要进入 Docker Desktop 的安装目录,并运行 `.\DockerCli.exe -SwitchDaemon ` 来启动 Docker 守护进程。

    C:\>cd "C:\Program Files\Docker\Docker"
    C:\Program Files\Docker\Docker>.\DockerCli.exe -SwitchDaemon
    Switching to windows engine: Post "http://ipc/engine/switch": open \\.\pipe\dockerBackendApiServer: The system cannot find the file specified.

  4. 请检查您是否以管理员模式启动了 Docker Desktop。

    请确保已以管理员模式启动 Docker Desktop。要做到这一点,请右键单击Docker Desktop,然后选择**“以管理员身份运行”**。

Start Docker Desktop as Administrator

以管理员身份启动 Docker Desktop

如果您在 WSL 2 中运行 Milvus 时遇到与 WSL 相关的问题,可能需要按照以下步骤检查是否已将 Docker Desktop 配置为使用基于 WSL 2 的引擎:

  1. 请确保在**“设置”>“常规”中**勾选了“使用基于 WSL 2 的引擎”。

Use the WSL 2 based engine in Docker Desktop Settings

在 Docker Desktop 设置中使用基于 WSL 2 的引擎

  1. 前往**“设置**>资源>WSL 集成”,从已安装的 WSL 2 发行版中选择您希望启用 Docker 集成的发行版。

Select WSL 2 distributions in Docker Desktop Settings

在 Docker Desktop 设置中选择 WSL 2 发行版

Read config failed error prompt in Milvus startup

Milvus 启动时出现的“读取配置失败”错误提示

要解决 Milvus 启动时出现的“读取配置失败”错误,您需要检查挂载到 Milvus 容器中的卷是否正确。如果卷已正确挂载到容器中,您可以使用docker exec 命令进入容器,并按以下方式列出**/milvus/configs**文件夹:

List Milvus config files

列出 Milvus 配置文件

下一步

在 Docker 中安装 Milvus 后,您可以: