DockerでMilvusを動かす(Windows)
このページでは、Docker Desktop for Windowsを使用してWindows上でMilvusを実行する方法を説明します。
前提条件
Python 3.8+をインストールする。
DockerでMilvusを実行する。
MilvusはDockerコンテナとしてインストールするためのインストールスクリプトを提供しています。Microsoft WindowsにDocker Desktopをインストールしたら、管理者モードでPowerShellまたはWindowsコマンドプロンプトから、またWSL 2からDocker CLIにアクセスすることができます。
PowerShellまたはWindowsコマンドプロンプトから
PowerShellやWindowsコマンドプロンプトに慣れている場合、コマンドプロンプトは以下のようになります。
右クリックして管理者モードでDocker Desktopを開き、管理者として実行を選択します。
インストールスクリプトをダウンロードし、
standalone.bat
として保存します。C:\>Invoke-WebRequest https://github.com/milvus-io/milvus/blob/master/scripts/standalone_embed.bat -OutFile standalone.bat
ダウンロードしたスクリプトを実行し、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と一緒にembed 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の記事をご参照ください。
WSL 2を起動します。
C:\>wsl --install Ubuntu already installed. Starting Ubuntu...
インストール・スクリプトをダウンロードする。
# 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
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 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コマンドプロンプトから
右クリックから管理者として実行を選択し、管理者モードでDocker Desktopを開きます。
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.4.15/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コンテナは、デフォルトの認証情報を使用してポート9090および9091をローカルに提供し、そのデータを現在のフォルダ内のvolumes/minioにマップする。
milvus-standaloneコンテナは、ポート19530をデフォルト設定でローカルに提供し、そのデータを現在のフォルダのvolumes/milvusにマップする。
WSL 2がインストールされていれば、Linux版のDocker Composeコマンドを呼び出すこともできます。
WSL 2から
手順は、Docker Composeを使用してLinuxシステムにMilvusをインストールする場合と同様です。
WSL 2を起動します。
C:\>wsl --install Ubuntu already installed. Starting Ubuntu...
Milvusの設定ファイルをダウンロードします。
$ wget https://github.com/milvus-io/milvus/releases/download/v2.4.17/milvus-standalone-docker-compose.yml -O docker-compose.yml
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
エラーが発生することがあります。この場合、以下の確認を行う必要があります。
仮想化が有効になっているか確認してください。
仮想化が有効になっているかどうかは、タスクマネージャの パフォーマンスタブで確認できます。
タスクマネージャの仮想化
仮想化が無効になっている場合は、マザーボードのファームウェアのBIOS設定を確認する必要があります。BIOS設定で仮想化を有効にする方法は、マザーボードベンダーによって異なります。例えばASUSマザーボードの場合、仮想化を有効にする方法についてはこちらの記事を参考にしてください。
その後、コンピュータを再起動し、Hyper-Vを有効にする必要があります。詳細については、このMicrosoftの記事を参照してください。
Docker Desktop Serviceが起動したかどうかを確認します。
以下のコマンドを実行して、Docker Desktop Serviceを起動します。
C:\>net start com.docker.service The Docker for Windows Service service is starting. The Docker for Windows Service service was started successfully.
WSLが正しくインストールされているかどうかを確認します。
以下のコマンドを実行して、WSL 2コマンドをインストールまたは更新します。
C:\>wsl --update Checking for updates. The most recent version of Windows Subsystem for Linux is already installed.
Docker Daemonが起動しているか確認します。
Docker Desktopのインストールディレクトリに移動し、
.\DockerCli.exe -SwitchDaemon
。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.
Docker Desktopを管理者モードで起動したかどうかを確認します。
Docker Desktopを管理者モードで起動していることを確認してください。これを行うには、Docker Desktopを右クリックし、管理者として実行を選択します。
管理者としてDocker Desktopを起動する
Milvusのデプロイ中にWSL関連の問題が発生した場合の対処方法を教えてください。
WSL 2からMilvusを実行中にWSL関連の問題が発生した場合、以下のようにWSL 2ベースのエンジンを使用するようにDocker Desktopを設定したかどうかを確認する必要があるかもしれません。
設定>一般で「WSL 2ベースのエンジンを使用する」にチェックが入っていることを確認してください。
Docker Desktopの設定でWSL 2ベースのエンジンを使用する
インストールされているWSL 2ディストリビューションから、Docker統合を有効にしたいディストリビューションを選択します:設定>リソース>WSL統合。
Docker Desktop SettingsでWSL 2ディストリビューションを選択します。
Milvusの起動時にボリューム関連のエラーが表示され、Read config failed
。
Milvus起動時に表示されるRead config failedエラーのプロンプトについて
Milvus起動時に表示される「Read config failed」というエラーに対処するには、Milvusコンテナにマウントされているボリュームが正しいかどうかを確認する必要があります。ボリュームが正しくコンテナにマウントされていれば、docker exec
コマンドでコンテナに入り、以下のように/milvus/configsフォルダをリストアップすることができる。
Milvus 設定ファイルのリストアップ