安装

docker run -d --name attu -p 3000:3000 -e MILVUS_URL=localhost:19530 zilliz/attu:v2.6.3

因为我本地 3000 已经被 memgraph-lab 占用,所以这里调整一下端口号。

ip 查看

docker inspect -f "" milvus-standalone

172.18.0.4

检查服务

docker ps
CONTAINER ID   IMAGE                                      COMMAND                   CREATED       STATUS                             PORTS                                                                                          NAMES
adaf15c2e48a   milvusdb/milvus:v2.6.9                     "/tini -- milvus run…"   6 hours ago   Up 17 seconds (health: starting)   0.0.0.0:9091->9091/tcp, [::]:9091->9091/tcp, 0.0.0.0:19530->19530/tcp, [::]:19530->19530/tcp   milvus-standalone
9c64aea0f953   minio/minio:RELEASE.2024-12-18T13-15-44Z   "/usr/bin/docker-ent…"   6 hours ago   Up 17 seconds (health: starting)   0.0.0.0:9000-9001->9000-9001/tcp, [::]:9000-9001->9000-9001/tcp                                milvus-minio
1d41338fe36a   quay.io/coreos/etcd:v3.5.25                "etcd -advertise-cli…"   6 hours ago   Up 17 seconds (health: starting)   2379-2380/tcp                                                                                  milvus-etcd

登录

http://localhost:13000/#/connect

默认账密

用户名:   root
密码:     Milvus

实际上默认配置应该是没启动的,参考 https://github.com/zilliztech/attu/issues/161

登录失败

报错:

Request URL http://localhost:3000/api/v1/milvus/connect 
Request Method POST 
Status Code 401 Unauthorized 

请求信息:{"username":"","password":"","address":"172.18.0.4:19530","token":"","database":"default","checkHealth":true,"clientId":"dob42d","ssl":false,"webui_api_base":"","readonly_mode":false,"isManaged":false,"isServerless":false,"isDedicated":false} 

响应信息:{"statusCode":401,"message":"Deadline exceeded"} 

日志

可以发现二者不在一个网络

> docker logs attu

POST 401 /api/v1/milvus/connect 15116.135 ms @ Fri, 30 Jan 2026 02:09:05 GMT ::ffff:172.17.0.1 from undefined Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36

POST /api/v1/milvus/connect 401 Error: 4 DEADLINE_EXCEEDED: Deadline exceeded

 POST 401 /api/v1/milvus/connect 15110.073 ms @ Fri, 30 Jan 2026 02:09:26 GMT ::ffff:172.17.0.1 from undefined Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36

跨网络问题

attu 和 milvus 跨网络了。

networks:
  default:
    name: milvus

重新启动

# 删除旧的
 docker rm -f attu  

# 启动新的
 docker run -d --name attu --network milvus -p 3000:3000 -e MILVUS_URL=localhost:19530 zilliz/attu:v2.6.3

配置信息

Address: milvus-standalone:19530
Username: (留空)
Password: (留空)
Database: default

这里的 address 使用 milvus 的 image 名称,避免 ip 变化。

可以了!主要还是网络的坑。

测试

配置文件

version: '3.5'

services:
  etcd:
    container_name: milvus-etcd
    image: quay.io/coreos/etcd:v3.5.25
    environment:
      - ETCD_AUTO_COMPACTION_MODE=revision
      - ETCD_AUTO_COMPACTION_RETENTION=1000
      - ETCD_QUOTA_BACKEND_BYTES=4294967296
      - ETCD_SNAPSHOT_COUNT=50000
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
    command: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
    healthcheck:
      test: ["CMD", "etcdctl", "endpoint", "health"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio:
    container_name: milvus-minio
    image: minio/minio:RELEASE.2024-12-18T13-15-44Z
    environment:
      MINIO_ACCESS_KEY: minioadmin
      MINIO_SECRET_KEY: minioadmin
    ports:
      - "9001:9001"
      - "9000:9000"
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
    command: minio server /minio_data --console-address ":9001"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  standalone:
    container_name: milvus-standalone
    image: milvusdb/milvus:v2.6.9
    command: ["milvus", "run", "standalone"]
    security_opt:
    - seccomp:unconfined
    environment:
      ETCD_ENDPOINTS: etcd:2379
      MINIO_ADDRESS: minio:9000
      MQ_TYPE: woodpecker
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
      interval: 30s
      start_period: 90s
      timeout: 20s
      retries: 3
    ports:
      - "19530:19530"
      - "9091:9091"
    depends_on:
      - "etcd"
      - "minio"

networks:
  default:
    name: milvus

搞了半天还是不行。于是决定降低版本

降低版本

docker run -d --name attu -p 13000:3000 -e MILVUS_URL=172.18.0.4:19530 zilliz/attu:v2.6

参考资料

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