Docker Compose를 사용하여 Milvus 실행하기 (Linux)

이 페이지에서는 Docker Compose를 사용하여 Docker에서 Milvus 인스턴스를 실행하는 방법을 설명합니다.

필수 조건

Milvus 설치

Milvus는 Milvus 저장소에서 Docker Compose 구성 파일을 제공합니다. v3.0.3용 구성 파일을 다운로드하고 새로운 배포를 시작하십시오:

# Download the configuration file
$ wget https://github.com/milvus-io/milvus/releases/download/v3.0.3/milvus-standalone-docker-compose.yaml -O docker-compose.yaml

# Start Milvus
$ sudo docker compose up -d

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

기본 배포(v3.0.3): docker compose up -d 는 milvus-etcd (메타데이터), milvus-minio (오브젝트 스토리지), milvus-standalone 등 세 개의 장기 실행 컨테이너를 시작합니다. 메시지 큐는 Woodpecker(임베디드형, WAL 백엔드로 MinIO/오브젝트 스토리지 사용)이므로 별도의 메시지 큐 컨테이너는 필요하지 않습니다.

또한 이 구성은 데이터 디렉터리의 소유권 설정을 준비하기 위해 일회성 milvus-volume-init 서비스를 실행합니다. 이 서비스는 해당 작업을 완료한 후 종료됩니다.

버전별 메시지 큐 기본값:

  • 2.5.x — 기본 메시지 큐는 RocksMQ입니다.
  • 2.6.x 이상 — 기본 메시지 큐는 Woodpecker(임베디드)입니다.

설치하려는 릴리스에 첨부된 구성을 사용하십시오. 기존 배포 환경의 경우, 구성을 신규 설치 파일로 대체하는 대신 업그레이드 지침을 따르십시오.

  • docker compose 를 사용할 수 없는 경우, Docker 지침에 따라 Compose 플러그인을 설치하십시오.

  • 이미지 가져오기 과정에서 문제가 발생하면, 문제 세부 정보를 포함하여 community@zilliz.com으로 문의해 주시면 필요한 지원을 제공해 드리겠습니다.

Milvus를 시작한 후,

  • milvus-standalone, milvus-minio, milvus-etcd라는 이름의 컨테이너가 실행됩니다.
    • milvus-etcd 컨테이너는 호스트에 포트를 노출하지 않으며, 데이터를 현재 폴더의 volumes/etcd에 매핑합니다.
    • milvus-minio 컨테이너는 기본 인증 자격 증명을 사용하여 로컬에서 9000번 및 9001번 포트를 제공하며, 데이터를 현재 폴더의 volumes/minio에 매핑합니다.
    • milvus-standalone 컨테이너는 기본 설정으로 로컬에서 19530번 포트를 제공하며, 데이터를 현재 폴더의 volumes/milvus에 매핑합니다.

다음 명령어를 사용하여 컨테이너가 정상적으로 실행 중인지 확인할 수 있습니다:

$ docker compose ps

NAME                IMAGE   COMMAND                  SERVICE      CREATED         STATUS                   PORTS
milvus-etcd         …       "etcd -advertise-cli…"   etcd         2 minutes ago   Up 2 minutes (healthy)   2379-2380/tcp
milvus-minio        …       "/usr/bin/docker-ent…"   minio        2 minutes ago   Up 2 minutes (healthy)   9000-9001/tcp
milvus-standalone   …       "/tini -- milvus run…"   standalone   2 minutes ago   Up 2 minutes (healthy)   0.0.0.0:9091->9091/tcp, 0.0.0.0:19530->19530/tcp

또한 http://127.0.0.1:9091/webui/ 에서 Milvus WebUI에 접속하여 Milvus 인스턴스에 대한 자세한 정보를 확인할 수 있습니다. 자세한 내용은 Milvus WebUI를 참조하십시오.

실행 중인 서버를 테스트하려면 퀵스타트(Quickstart )의 ‘기존 Milvus 서버 사용’ 경로를 따르고 http://localhost:19530 에 연결하십시오. 별도의 Milvus Lite 데이터베이스를 시작하는 로컬 .db 연결 블록은 사용하지 마십시오.

(선택 사항) Milvus 구성 업데이트

필요에 따라 Milvus 구성을 업데이트하려면 milvus-standalone 컨테이너 내의 /milvus/configs/user.yaml 파일을 수정해야 합니다.

  1. milvus-standalone 컨테이너에 액세스합니다.

    docker exec -it milvus-standalone bash
    
  2. 기본 설정을 재정의할 추가 구성을 추가합니다. 다음 내용은 기본 proxy.healthCheckTimeout 를 재정의해야 한다고 가정합니다. 적용 가능한 구성 항목에 대해서는 시스템 구성을 참조하십시오.

    cat << EOF > /milvus/configs/user.yaml
    # Extra config to override default milvus.yaml
    proxy:
      healthCheckTimeout: 1000 # ms, the interval that to do component healthy check
    EOF
    
  3. 변경 사항을 적용하려면 milvus-standalone 컨테이너를 다시 시작하십시오.

    docker restart milvus-standalone
    

Milvus 중지 및 삭제

다음과 같이 이 컨테이너를 중지하고 삭제할 수 있습니다.

# Stop Milvus
$ sudo docker compose down

# Delete service data
$ sudo rm -rf volumes

기존 배포 업그레이드

Milvus 2.6.x 독립형 배포의 경우, ‘Docker Compose를 사용하여 Milvus 독립형 업그레이드’를 따르십시오. 메타데이터와 영구 데이터를 백업하고, 기존 종속성과 구성을 보존하며, Milvus 이미지를 변경하기 전에 문서화된 소스에서 대상으로의 업그레이드 경로를 확인하십시오. 이전 배포의 Compose 파일을 위의 새 설치 구성으로 대체하지 마십시오.

메시지 큐 제한 사항: Milvus v3.0.3으로 업그레이드할 때는 현재 사용 중인 메시지 큐를 유지해야 합니다. 업그레이드 과정에서 다른 메시지 큐 시스템으로 전환하는 것은 지원되지 않습니다. 메시지 큐 시스템 변경에 대한 지원은 향후 버전에서 제공될 예정입니다.

Milvus 2.6.x 이상은 기본적으로 Woodpecker를 사용하며, 2.5.x 배포 환경은 기본적으로 RocksMQ를 사용합니다. 업그레이드하려는 배포 환경에서 여전히 RocksMQ가 실행 중이라면, Milvus 이미지를 변경하기 전에 ` user.yaml `에서 이를 고정하여, 업그레이드된 인스턴스가 새로운 기본값으로 시작하는 대신 기존 메시지 큐를 유지하도록 하십시오.

# user.yaml — keep RocksMQ across the upgrade
mq:
  type: rocksmq

업그레이드된 인스턴스가 v3.0.3에서 실행되고 나면, Milvus 3.0 이상에서 사용할 수 있는 ‘메시지 큐 전환(Switch Message Queue)’ 기능을 통해 RocksMQ에서 Woodpecker로 전환할 수 있습니다.

선택적 종속성

이 배포 환경은 메시징을 위해 Woodpecker (임베디드, MinIO WAL 백엔드), 메타데이터를 위해 etcd, 오브젝트 스토리지를 위해 MinIO를 실행합니다. 다른 메시지 큐를 사용하거나 외부 오브젝트 스토리지/메타데이터를 연결하려면 다음을 참조하십시오:

Storage V3는 기본적으로 비활성화되어 있습니다. Storage V3에 의존하는 기능을 사용하기 전에 활성화해야 합니다. 요구 사항 및 호환성 고려 사항에 대해서는 Storage V3를 참조하십시오.

다음 단계

Docker에 Milvus를 설치했다면 다음을 수행할 수 있습니다:

번역DeepL

Office Hours

밀버스 영업 시간

Milvus의 전문가인 질리즈의 프로덕션 배포에 대한 도움을 받으세요.

무료 1:1 세션 예약하기

관리형 Milvus를 무료로 사용해 보세요

Zilliz Cloud는 번거로움이 없으며, Milvus 기반으로 10배 더 빠릅니다.

시작하기
피드백

이 페이지가 도움이 되었나요?