一、docker-compose 方式部署

1、安装 docker

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker
docker version

2、配置 daemon.json 镜像源

vim /etc/docker/daemon.json
{
  "registry-mirrors": [
          "https://docker.m.daocloud.io/",
          "https://huecker.io/",
          "https://dockerhub.timeweb.cloud",
          "https://noohub.ru/",
          "https://dockerproxy.com",
          "https://docker.mirrors.ustc.edu.cn",
          "https://docker.nju.edu.cn",
          "https://xx4bwyg2.mirror.aliyuncs.com",
          "http://f1361db2.m.daocloud.io",
          "https://registry.docker-cn.com",
          "http://hub-mirror.c.163.com",
          "https://docker.mirrors.ustc.edu.cn"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}

systemctl daemon-reload
systemctl restart docker

3、安装 docker-compose

# 下载二进制文件
wget https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64

mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

# 添加执行权限
chmod +x /usr/local/bin/docker-compose
echo 'export PATH=$PATH:/usr/local/bin' >> ~/.bashrc
source ~/.bashrc

# 验证安装是否成功
docker-compose --version

4、安装 Milvus

# 新建一个名为milvus的目录用于存放数据 目录名称可以自定义
mkdir milvus
cd milvus

# 下载并编辑docker-compose.yml
# CPU单机版
wget https://github.com/milvus-io/milvus/releases/download/v2.3.5/milvus-standalone-docker-compose.yml -O docker-compose.yml


# 下载完后修改其内容
修改minio镜像名
image: docker.io/minio/minio:RELEASE.2023-03-20T20-16-18Z

修改milvus镜像名
image: docker.io/milvusdb/milvus:v2.5.2

在倒数第三行上面添加以下内容
  attu:
     container_name: attu
     image: zilliz/attu:v2.4
     restart: always
     environment:
       MILVUS URL: standalone:19530
     ports:
       - "8000:3000"
     depends_on:
       - "standalone"

5、拉取镜像

docekr pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/minio/minio:RELEASE.2023-03-20T20-16-18Z
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/minio/minio:RELEASE.2023-03-20T20-16-18Z  docker.io/minio/minio:RELEASE.2023-03-20T20-16-18Z

docker pull quay.io/coreos/etcd:v3.5.5

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/zilliz/attu:v2.4  
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/zilliz/attu:v2.4  zilliz/attu:v2.4

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/milvusdb/milvus:v2.5.2
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/milvusdb/milvus:v2.5.2 docker.io/milvusdb/milvus:v2.5.2

6、docker-compose 部署 milvus

docker compose up -d

7、attu 登录

attu Web 访问:ip:80000
连接数据库:standalone:19530

8、minio 登录

http://ip:9091
minioadmin/minioadmin

二、使用 docker 安装 milvus

1、docker 的安装和配置同上面一样

2、下载安装脚本

$ curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh

3、安装 milvus

① 使用宿主机网络模式安装

vim standalone_embed.sh
...
sudo docker run -d \
        --name milvus-standalone \
        --security-opt seccomp:unconfined \
        --network host \   ## 添加该行
        -e ETCD_USE_EMBED=true \
        -e ETCD_DATA_DIR=/var/lib/milvus/etcd \
        -e ETCD_CONFIG_PATH=/milvus/configs/embedEtcd.yaml \
        -e COMMON_STORAGETYPE=local \
        -v $(pwd)/volumes/milvus:/var/lib/milvus \
        -v $(pwd)/embedEtcd.yaml:/milvus/configs/embedEtcd.yaml \
        -v $(pwd)/user.yaml:/milvus/configs/user.yaml \
        -p 19530:19530 \  ## 删除该行
        -p 9091:9091 \    ## 删除该行
        -p 2379:2379 \    ## 删除该行
        --health-cmd="curl -f http://localhost:9091/healthz" \
        --health-interval=30s \
        --health-start-period=90s \
        --health-timeout=20s \
        --health-retries=3 \
        milvusdb/milvus:v2.5.1 \
        milvus run standalone  1> /dev/null
...

使用宿主机网络模式后,容器将与宿主机共享网络,因此不需要使用 -p 参数来映射端口了。如果使用宿主机网络并且需要访问容器的服务,可以直接通过宿主机的 IP 地址或主机名来访问相应的端口。

# 执行安装脚本

$ bash standalone_embed.sh start

# 停止、删除、升级 milvus

# Stop Milvus
$ bash standalone_embed.sh stop

# Delete Milvus data
$ bash standalone_embed.sh delete

# upgrade Milvus
$ bash standalone_embed.sh upgrade

② 不使用宿主机网络,使用docker网桥

下载好的安装脚本不用修改,其余均同上

# 登录 milvus 的 Web UI

http://ip:9091/webui/

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐