要求

https://milvus.io/docs/zh/prerequisite-docker.md

compose 模式启动

安装

Milvus 在 Milvus 资源库中提供了 Docker Compose 配置文件。

要使用 Docker Compose 安装 Milvus,只需运行

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

sudo docker compose up -d

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

windows

windows 下面没有这个命令,可以访问 https://github.com/milvus-io/milvus/releases/download/v2.6.9/milvus-standalone-docker-compose.yml 直接下载得到这个文件

D:\_docker\milvus 的目录

2026/01/29  10:47    <DIR>          .
2026/01/29  10:47    <DIR>          ..
2026/01/29  10:46             1,788 milvus-standalone-docker-compose.yml

然后把名字改为 docker-compose.yml

然后执行命令 docker compose up -d

会进入拉取模式:

docker compose up -d
time="2026-01-29T10:52:37+08:00" level=warning msg="D:\\_docker\\milvus\\docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion"
[+] Running 4/33
 - standalone [⣿⣿⣿⣿⡀⠀⠀] Pulling                                                                                                                      152.7s
 - etcd [⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀] Pulling                                                                                                                     152.7s
 - minio [⠀⠀⠀⠀⠀⠀⠀⠀⠀] Pulling                                                                                                                         152.7s

启动成功日志

docker compose up -d
time="2026-01-29T10:52:37+08:00" level=warning msg="D:\\_docker\\milvus\\docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion"

[+] Running 4/4
 ✔ Network milvus               Created                                                                                                                0.2s
 ✔ Container milvus-etcd        Started                                                                                                                1.6s
 ✔ Container milvus-minio       Started                                                                                                                1.6s
 ✔ Container milvus-standalone  Started                                                                                                                1.8s

入门测试

docker-compose.yml

version: '3.5'                 # Docker Compose 文件版本,3.x 系列常用于 Docker Engine

services:                       # 定义所有要启动的服务(容器)

  etcd:                         # etcd 服务,用作 Milvus 的元数据存储
    container_name: milvus-etcd # 指定容器名称,方便 docker ps / docker logs 操作
    image: quay.io/coreos/etcd:v3.5.25  # 使用指定版本的 etcd 官方镜像

    environment:                # etcd 运行时环境变量
      - ETCD_AUTO_COMPACTION_MODE=revision       # 自动压缩模式:按 revision(版本号)
      - ETCD_AUTO_COMPACTION_RETENTION=1000      # 保留最近 1000 个 revision
      - ETCD_QUOTA_BACKEND_BYTES=4294967296      # etcd 后端存储最大 4GB
      - ETCD_SNAPSHOT_COUNT=50000                # 多少次写操作触发一次快照

    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
        # 将宿主机目录挂载到容器内 /etcd,用于持久化 etcd 数据
        # DOCKER_VOLUME_DIRECTORY 未定义时,默认使用当前目录 .

    command: >
      etcd
      -advertise-client-urls=http://etcd:2379    # 向集群/客户端声明的访问地址
      -listen-client-urls http://0.0.0.0:2379   # 监听所有网卡的 2379 端口
      --data-dir /etcd                           # 指定数据存储目录(对应上面的 volume)

    healthcheck:               # 容器健康检查配置
      test: ["CMD", "etcdctl", "endpoint", "health"] # 使用 etcdctl 检查 etcd 是否健康
      interval: 30s            # 每 30 秒检查一次
      timeout: 20s             # 单次检查超时时间 20 秒
      retries: 3               # 连续失败 3 次则判定为 unhealthy


  minio:                       # MinIO 服务,用作 Milvus 的对象存储(替代 S3)
    container_name: milvus-minio  # 指定容器名称
    image: minio/minio:RELEASE.2024-12-18T13-15-44Z # 指定 MinIO 版本(固定版本,避免升级风险)

    environment:               # MinIO 访问凭证
      MINIO_ACCESS_KEY: minioadmin  # Access Key(用户名)
      MINIO_SECRET_KEY: minioadmin  # Secret Key(密码)

    ports:
      - "9001:9001"            # 映射控制台端口(Web UI)
      - "9000:9000"            # 映射对象存储服务端口(S3 API)

    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
        # 持久化 MinIO 存储的数据

    command: >
      minio server /minio_data
      --console-address ":9001" # 指定 Web 控制台端口

    healthcheck:               # MinIO 健康检查
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
        # 访问 MinIO 内置健康检查接口
      interval: 30s
      timeout: 20s
      retries: 3


  standalone:                  # Milvus 单机版(standalone 模式)
    container_name: milvus-standalone  # 容器名称
    image: milvusdb/milvus:v2.6.9      # Milvus 官方镜像(指定版本)

    command: ["milvus", "run", "standalone"]
      # 以 standalone 模式启动 Milvus(etcd + storage + query 全部在一个进程中)

    security_opt:
      - seccomp:unconfined     # 关闭 seccomp 限制,避免某些系统调用被拦截

    environment:               # Milvus 运行所需的环境变量
      ETCD_ENDPOINTS: etcd:2379  # 指定 etcd 服务地址(使用 Docker 内部 DNS)
      MINIO_ADDRESS: minio:9000 # 指定 MinIO 地址
      MQ_TYPE: woodpecker       # Milvus 内部消息队列类型(standalone 推荐)

    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
        # 持久化 Milvus 的数据(索引、segment 等)

    healthcheck:               # Milvus 健康检查
      test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
        # Milvus 自带健康检查接口
      interval: 30s
      start_period: 90s        # 容器启动后,等待 90 秒再开始健康检查
      timeout: 20s
      retries: 3

    ports:
      - "19530:19530"          # Milvus gRPC 服务端口(SDK 连接用)
      - "9091:9091"            # Milvus HTTP 管理 / 健康检查端口

    depends_on:
      - "etcd"                 # 依赖 etcd 服务先启动
      - "minio"                # 依赖 MinIO 服务先启动


networks:
  default:                     # 使用默认网络
    name: milvus               # 显式指定 Docker 网络名称,方便复用和排查

https://milvus.io/docs/zh/install_standalone-docker.md

windows 安装记录

下载安装脚本

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

运行启动

standalone.bat start

配置说明

运行安装脚本后

名为Milvus-standalone的 docker 容器已在19530 端口启动。

嵌入式 etcd 与 Milvus 安装在同一个容器中,服务端口为2379。其配置文件被映射到当前文件夹中的embedEtcd.yaml。

Milvus 数据卷映射到当前文件夹中的volumes/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.

参考资料

https://milvus.io/docs/zh/install_standalone-docker.md

https://milvus.io/docs/zh/install_standalone-docker-compose.md

https://milvus.io/docs/zh/install_standalone-windows.md