当前位置: 首页 > news >正文

Ubuntu docker安装milvusdb

一、安装docker

1.更新软件包
sudo apt update
sudo apt upgrade
sudo apt-get install docker-ce docker-ce-cli containerd.io
查看是否安装成功
docker -v

二、使用国内的镜像下载 milvusdb

  • Docker中国区官方镜像: https://registry.docker-cn.com

milvusdb/milvus - Docker镜像详情和使用教程 - Docker镜像搜索下载milvusdb/milvusmilvusdb/milvus - Docker镜像详情和使用教程 - Docker镜像搜索下载

 配置国内镜像

镜像加速

1、修改 /etc/docker/daemon.json,设置 registry mirror:

sudo vim /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me"
  ]
}

2、重启docker: 

systemctl daemon-reload
systemctl restart docker

 3.拉取镜像

sudo docker pull milvusdb/milvus

sudo  docker pull milvusdb/milvus:master-20250316-7ebe3d70

 三、下载安装脚本

在 Docker 中运行 Milvus (Linux) | Milvus 文档

下载Milvus 安装脚本

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

 脚本 standalone_embed.sh 内容

#!/usr/bin/env bash

# Licensed to the LF AI & Data foundation under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

run_embed() {
    cat << EOF > embedEtcd.yaml
listen-client-urls: http://0.0.0.0:2379
advertise-client-urls: http://0.0.0.0:2379
quota-backend-bytes: 4294967296
auto-compaction-mode: revision
auto-compaction-retention: '1000'
EOF

    cat << EOF > user.yaml
# Extra config to override default milvus.yaml
EOF
    if [ ! -f "./embedEtcd.yaml" ]
    then
        echo "embedEtcd.yaml file does not exist. Please try to create it in the current directory."
        exit 1
    fi

    if [ ! -f "./user.yaml" ]
    then
        echo "user.yaml file does not exist. Please try to create it in the current directory."
        exit 1
    fi
    
    sudo docker run -d \
        --name milvus-standalone \
        --security-opt seccomp:unconfined \
        -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 \
        milvus run standalone  1> /dev/null
}

wait_for_milvus_running() {
    echo "Wait for Milvus Starting..."
    while true
    do
        res=`sudo docker ps|grep milvus-standalone|grep healthy|wc -l`
        if [ $res -eq 1 ]
        then
            echo "Start successfully."
            echo "To change the default Milvus configuration, add your settings to the user.yaml file and then restart the service."
            break
        fi
        sleep 1
    done
}

start() {
    res=`sudo docker ps|grep milvus-standalone|grep healthy|wc -l`
    if [ $res -eq 1 ]
    then
        echo "Milvus is running."
        exit 0
    fi

    res=`sudo docker ps -a|grep milvus-standalone|wc -l`
    if [ $res -eq 1 ]
    then
        sudo docker start milvus-standalone 1> /dev/null
    else
        run_embed
    fi

    if [ $? -ne 0 ]
    then
        echo "Start failed."
        exit 1
    fi

    wait_for_milvus_running
}

stop() {
    sudo docker stop milvus-standalone 1> /dev/null

    if [ $? -ne 0 ]
    then
        echo "Stop failed."
        exit 1
    fi
    echo "Stop successfully."

}

delete_container() {
    res=`sudo docker ps|grep milvus-standalone|wc -l`
    if [ $res -eq 1 ]
    then
        echo "Please stop Milvus service before delete."
        exit 1
    fi
    sudo docker rm milvus-standalone 1> /dev/null
    if [ $? -ne 0 ]
    then
        echo "Delete milvus container failed."
        exit 1
    fi
    echo "Delete milvus container successfully."
}

delete() {
    delete_container
    sudo rm -rf $(pwd)/volumes
    sudo rm -rf $(pwd)/embedEtcd.yaml
    sudo rm -rf $(pwd)/user.yaml
    echo "Delete successfully."
}

upgrade() {
    read -p "Please confirm if you'd like to proceed with the upgrade. The default will be to the latest version. Confirm with 'y' for yes or 'n' for no. > " check
    if [ "$check" == "y" ] ||[ "$check" == "Y" ];then
        res=`sudo docker ps -a|grep milvus-standalone|wc -l`
        if [ $res -eq 1 ]
        then
            stop
            delete_container
        fi

        curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed_latest.sh && \
        bash standalone_embed_latest.sh start 1> /dev/null && \
        echo "Upgrade successfully."
    else
        echo "Exit upgrade"
        exit 0
    fi
}

case $1 in
    restart)
        stop
        start
        ;;
    start)
        start
        ;;
    stop)
        stop
        ;;
    upgrade)
        upgrade
        ;;
    delete)
        delete
        ;;
    *)
        echo "please use bash standalone_embed.sh restart|start|stop|upgrade|delete"
        ;;
esac

修改milvusdb/milvus 去掉后面的版本号,用上面已经下载了镜像,用上面的镜像。(直接执行脚本的话,下载不下来国外的镜像)。

执行脚本 

sudo bash standalone_embed.sh start

运行安装脚本后

  • 一个名为 Milvus 的 docker 容器已在19530 端口启动。
  • 嵌入式 etcd 与 Milvus 安装在同一个容器中,服务端口为2379。它的配置文件被映射到当前文件夹中的embedEtcd.yaml。
  • 要更改 Milvus 的默认配置,请将您的设置添加到当前文件夹中的user.yaml文件,然后重新启动服务。
  • Milvus 数据卷被映射到当前文件夹中的volumes/milvus

你可以访问 Milvus WebUI,网址是http://127.0.0.1:9091/webui/

四、停止和删除 Milvus

停止和删除此容器的方法如下

# Stop Milvus
$ sudo bash standalone_embed.sh stop

# Delete Milvus data
$ sudo bash standalone_embed.sh delete

你可以按以下步骤升级最新版本的 Milvus

# upgrade Milvus
$ bash standalone_embed.sh upgrade

相关文章:

  • Matlab 四分之一车辆被动悬架和模糊pid控制对比
  • 网页制作17-Javascipt图像特效の鼠标经过图像震动
  • Axure原型设计新境界:ElementUI元件库与后台模板的高效融合
  • 【紫光同创FPGA开发常用工具】FPGACPLD的下载与固化
  • 3.16[A]FPGA
  • 如何利用 Zeabur 实现 OceanBase 的一键部署
  • 【儿童_认知地图的构建困境】
  • 开源PACS(dcm4che-arc-light)部署教程,源码方式
  • Java 设计模式之享元模式(Flyweight Pattern)
  • error:0308010C:digital envelope routines::unsupported
  • 推理大模型的后训练增强技术-Reasoning模型也进化到2.0了,这次居然学会用工具了
  • 基于Springboot+Typst的PDF生成方案,适用于报告打印/标签打印/二维码打印等
  • I2C 总线协议
  • 1.6 极限存在准则
  • python-数据结构汇总,树图、代码讲解(字符串、数组、字典、集合、元组)
  • JavaScript运算符与流程控制详解
  • 【每日学点HarmonyOS Next知识】上下拉列表、停止无限循环动画、页面列表跟随列表滑动、otf字体、日期选择
  • C语言修饰符汇总详解
  • 4.数据结构-树和二叉树
  • VLLM专题(二十六)—使用 Docker
  • 订婚不等于性同意!山西订婚强奸案入选最高法案例
  • 夜读丨读《汉书》一得
  • “一码难求”的Manus开放注册但价格不菲,智能体距离“实用”还有多远
  • 马上评丨火车穿村而过多人被撞身亡,亡羊补牢慢不得
  • 航行警告:渤海海峡黄海北部执行军事任务,禁止驶入
  • 代理销售保险存在误导行为,农业银行重庆市分行相关负责人被罚款0.1万元