milvus-logo

Install Milvus Cluster with Docker Compose

This topic introduces how to deploy a Milvus cluster with Docker Compose.

Docker Compose cannot deploy Milvus distributed clusters across machines, and can only be used in test environments. It is not recommended that you deploy Milvus distributed clusters in this way in production environments.

Prerequisites

Check the requirements for hardware and software prior to your installation.

Download the YAML file

Download milvus-cluster-docker-compose.yml and save it as docker-compose.yml manually, or with the following command.

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

Start Milvus

In the same directory as the docker-compose.yml file, start up Milvus by running:

$ sudo docker-compose up -d
If your system has Docker Compose V2 installed instead of V1, use docker compose instead of docker-compose . Check if this is the case with $ docker compose version . Read here for more information.
Creating milvus-etcd   ... done
Creating milvus-minio  ... done
Creating milvus-pulsar ... done
Creating milvus-proxy      ... done
Creating milvus-rootcoord  ... done
Creating milvus-indexcoord ... done
Creating milvus-querycoord ... done
Creating milvus-datacoord  ... done
Creating milvus-querynode  ... done
Creating milvus-indexnode  ... done
Creating milvus-datanode   ... done

Check the status of the containers.

$ sudo docker ps

After Milvus cluster starts, 11 running docker containers appear including three dependencies and eight Milvus services.

      Name                     Command                  State                            Ports
--------------------------------------------------------------------------------------------------------------------
milvus-datacoord    /tini -- milvus run datacoord    Up
milvus-datanode     /tini -- milvus run datanode     Up
milvus-etcd         etcd -advertise-client-url ...   Up             2379/tcp, 2380/tcp
milvus-indexcoord   /tini -- milvus run indexcoord   Up
milvus-indexnode    /tini -- milvus run indexnode    Up
milvus-minio        /usr/bin/docker-entrypoint ...   Up (healthy)   0.0.0.0:9000->9000/tcp, 0.0.0.0:9001->9001/tcp
milvus-proxy        /tini -- milvus run proxy        Up             0.0.0.0:19530->19530/tcp, 0.0.0.0:9091->9091/tcp
milvus-pulsar       /bin/bash -c                     Up
                    bin/apply-co ...
milvus-querycoord   /tini -- milvus run querycoord   Up
milvus-querynode    /tini -- milvus run querynode    Up
milvus-rootcoord    /tini -- milvus run rootcoord    Up

Stop Milvus

To stop Milvus cluster, run:

$ sudo docker-compose down

To delete data after stopping Milvus, run:

$ sudo rm -rf  volumes

What's next

Having installed Milvus, you can:

On this page