Docker で Milvus を実行する(Windows)

デフォルトでは、このデプロイメントではメッセージキューとしてWoodpecker(ローカルファイルシステム)が使用されるため、外部のメッセージキューサービスは不要です。Woodpecker を参照してください。

このページでは、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を右クリックし、「管理者として実行」を選択して、管理者モードで開きます。

  2. インストールスクリプトをダウンロードし、standalone.bat という名前で保存します。

    C:\>Invoke-WebRequest https://raw.githubusercontent.com/milvus-io/milvus/refs/heads/master/scripts/standalone_embed.bat -OutFile standalone.bat
    
    
  3. ダウンロードしたスクリプトを実行して、MilvusをDockerコンテナとして起動します。

    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 で起動しました。

    • Milvus とともに、埋め込み型の etcd が同じコンテナ内にインストールされ、ポート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コマンドやシェルスクリプトを使用して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. MilvusをDockerコンテナとして起動します。

    $ 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 delete
    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を右クリックし、「管理者として実行」を選択して、管理者モードで開きます。

  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/v3.0.1/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-standalone」、「milvus-minio」、「milvus-etcd」という名前のコンテナが起動すると、次のような状態になっていることが確認できます。

    • milvus-etcdコンテナはホストに対してポートを公開しておらず、そのデータを現在のフォルダ内のvolumes/etcdにマッピングしています。

    • milvus-minioコンテナは、デフォルトの認証情報を使用してローカルでポート9000および9001を提供し、そのデータを現在のフォルダ内の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/v3.0.1/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 を有効にする必要があります。詳細については、Microsoft のこの記事を参照してください。

  2. 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.
    
    
  3. WSLが正しくインストールされているか確認してください。

    以下のコマンドを実行して、WSL 2 をインストールまたは更新できます。

    C:\>wsl --update
    Checking for updates.
    The most recent version of Windows Subsystem for Linux is already installed.
    
    
  4. 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.
    
    
  5. 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ベースのエンジンを使用する

  2. [設定]>[リソース]>[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の起動時に表示される「Read config failed」エラー

Milvusの起動時に「Read config failed」というエラーが表示された場合は、Milvusコンテナにマウントされたボリュームが正しいかどうかを確認する必要があります。ボリュームがコンテナに正しくマウントされている場合は、docker exec コマンドを使用してコンテナ内に移動し、次のように/milvus/configsフォルダの一覧を表示できます:

List Milvus config files Milvusの設定ファイルの一覧表示

Storage V3はデフォルトで無効になっています。Storage V3に依存する機能を使用する前に、有効にしてください。要件および互換性に関する注意事項については、「Storage V3」を参照してください。

次の手順

DockerにMilvusをインストールしたら、次のことができます: