mac 使用 Docker 安装向量数据库Milvus独立版的保姆级别教程
Milvus
特点:开源的云原生向量数据库,支持多种索引类型和GPU加速,能够在亿级向量规模下实现低延迟高吞吐。具有灵活的部署选项和强大的社区支持。
适用场景:适合处理超大规模数据和高性能需求的应用,如图像搜索、推荐系统和自然语言处理。
了解更多关于Milvus的信息
一、环境准备
1. 硬件要求
- 内存:至少 8GB(推荐 16GB+),Milvus 依赖的 etcd 和 MinIO 组件会占用约 4GB 内存。
- 磁盘:至少 50GB 可用空间(存储向量数据和索引)。
- CPU:双核 Intel 或 Apple Silicon(M1/M2)芯片。
2. 软件要求
- macOS 版本:10.14(Mojave)或更高版本(如 macOS 14 Sonoma)。
- Docker Desktop:安装最新版(支持 Apple Silicon 芯片的 ARM 架构镜像)。
二、安装 Docker Desktop
-
下载 Docker Desktop
访问 Docker 官网,下载适合 macOS 的版本(支持 Intel 和 Apple Silicon)。 -
安装并启动 Docker
- 双击下载的
.dmg
文件,将 Docker 图标拖入Applications
文件夹。 - 打开 Docker Desktop,首次启动时需授权权限(如访问文件系统、网络等)。
- 登录 Docker Hub 账号(可选,但推荐以便拉取镜像)。
- 双击下载的
-
验证 Docker 是否安装成功
在终端运行以下命令:docker --version docker-compose --version # 确保 Docker Compose 已集成(v2.x+)
输出:
三、安装 Milvus 独立版
1.拉取 Milvus 镜像
docker pull milvusdb/milvus:v2.3.12
2.创建配置文件目录
mkdir -p ~/milvus/conf
cd ~/milvus
3. 下载 Milvus 的 Docker Compose 配置文件
在终端运行以下命令,下载 Milvus 官方提供的 docker-compose.yml
文件(以 Milvus v2.3.12 为例):
wget https://github.com/milvus-io/milvus/releases/download/v2.3.12/milvus-standalone-docker-compose.yml -O docker-compose.yml
在 macOS 终端中遇到
command not found: wget
错误,通常是因为系统未安装wget
工具。wget
是一个常用的命令行工具,用于从网络下载文件(支持 HTTP、HTTPS 和 FTP 协议)。以下是解决方法:方法1:用
curl -o docker-compose.yml [URL]
方法2 :通过 Homebrew 安装 wget
安装 Homebrew(如果尚未安装)
Homebrew 是 macOS 上的包管理器,可以方便地安装和管理命令行工具。
在终端运行以下命令安装 Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
使用 Homebrew 安装 wget
安装完 Homebrew 后,运行以下命令安装wget
brew install wget
验证安装
安装完成后,运行以下命令验证wget
是否可用:
wget --version
如果输出版本信息(如
GNU Wget 1.21.4
),则表示安装成功。
或手动创建文件:
# docker-compose.yml
version: '3.8'
services:etcd:image: quay.io/coreos/etcd:v3.5.5container_name: milvus-etcdenvironment:- ETCD_AUTO_COMPACTION_MODE=revision- ETCD_AUTO_COMPACTION_RETENTION=1000volumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcdports:- "2379:2379"command: etcd -advertise-client-urls=http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcdminio:image: minio/minio:RELEASE.2023-03-20T20-16-18Zcontainer_name: milvus-minioenvironment:MINIO_ACCESS_KEY: minioadminMINIO_SECRET_KEY: minioadminvolumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_dataports:- "9000:9000"- "9001:9001"command: minio server /minio_data --console-address ":9001"standalone:image: milvusdb/milvus:v2.3.12container_name: milvus-standaloneports:- "19530:19530" # gRPC 端口- "9091:9091" # HTTP 端口environment:ETCD_ENDPOINTS: etcd:2379MINIO_ADDRESS: minio:9000volumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvusdepends_on:- "etcd"- "minio"
4. 启动 Milvus 服务
在终端进入 docker-compose.yml
所在目录,运行以下命令:
docker compose up -d
-d
表示后台运行。- 首次启动会下载 Milvus、etcd 和 MinIO 的镜像(约 2GB),需耐心等待。
3. 验证服务状态
运行以下命令检查容器是否正常运行:
docker compose ps
输出示例:
NAME COMMAND STATE PORTS
milvus-etcd "/usr/local/bin/etcd..." Up (healthy) 2379/tcp, 2380/tcp
milvus-minio "/usr/bin/docker-ent..." Up (healthy) 9000/tcp, 9001/tcp
milvus-standalone "/tini -- milvus run..." Up (healthy) 0.0.0.0:19530->19530/tcp, 0.0.0.0:9091->9091/tcp
4. 访问 Milvus Web UI
- 打开浏览器,访问
http://localhost:9091/webui
。 - 默认无需登录,可直接查看 Milvus 的运行状态、集合信息等。
四、连接 Milvus 客户端
1. 使用 PyMilvus 连接
安装 PyMilvus:
pip3 install pymilvus==2.5.4
测试连接:
from pymilvus import connectionsconnections.connect(host="localhost",port="19530",user="",password=""
)
print(connections.list_connections()) # 输出连接信息
2. 使用 cURL 测试健康检查
curl -I http://localhost:9091/healthz
返回 HTTP/1.1 200 OK
表示服务正常。
五、常见问题排查
- 镜像下载慢
- 配置 Docker 国内镜像源(如阿里云、中科大等)。
- 修改 Docker Desktop 的
Settings > Docker Engine
,添加以下配置:{"registry-mirrors": ["https://<your-mirror-url>"] }
- 容器启动失败
- 检查日志:
docker compose logs -f
常见原因:
-
端口冲突:
修改docker-compose.yml
中的端口映射(如19530:19530
改为19531:19530
) -
内存不足:
在 Docker Desktop 设置中增加内存分配(建议至少 4GB)
-
- 检查日志:
- Apple Silicon 芯片兼容性问题
- 确保使用 Milvus 的 ARM 镜像(如
milvusdb/milvus:v2.5.4-arm64
)。 - 修改
docker-compose.yml
中的镜像标签为-arm64
。
- 确保使用 Milvus 的 ARM 镜像(如
- 数据持久化问题
- 默认数据存储在
./volumes/
目录下,删除容器前需备份该目录。 - 停止并删除容器:
docker compose down -v # -v 删除数据卷
- 默认数据存储在
六、卸载 Milvus
- 停止并删除容器:
docker compose down -v
- 删除配置文件和卷:
rm -rf docker-compose.yml volumes/
总结
通过本教程,你可以在 macOS 上快速部署 Milvus 独立版,并通过 Web UI 或客户端进行交互。Milvus 独立版适合开发测试和小规模生产环境,如需分布式部署,可参考官方 Kubernetes 部署方案。你也可以参考使用Docker安装 Milvus 独立版(官方文档)。
相关文章:
mac 使用 Docker 安装向量数据库Milvus独立版的保姆级别教程
Milvus 特点:开源的云原生向量数据库,支持多种索引类型和GPU加速,能够在亿级向量规模下实现低延迟高吞吐。具有灵活的部署选项和强大的社区支持。 适用场景:适合处理超大规模数据和高性能需求的应用,如图像搜索、推荐…...
Ubuntu日志文件清空的三种方式
清空Ubuntu日志文件可以通过三种方式: 使用命令行清空日志文件:可以使用以下命令清空特定日志文件,例如清空syslog文件: sudo truncate -s 0 /var/log/syslog使用编辑器清空日志文件:可以使用文本编辑器如Nano或Vi来…...
文章记单词 | 第68篇(六级)
一,单词释义 differentiate:英 [ˌdɪfəˈrenʃieɪt] 美 [ˌdɪfəˈrenʃieɪt] ,动词,意为 “区分;辨别;使有差别;使不同;表明… 间的差别;构成… 间差别的原因”。…...
Postman最佳平替, API测试工具Bruno实用教程(一):基础篇
序言 在前文【github星标超3万!Postman最强平替Bruno你用了吗?】中,我们介绍了目前目前Github上广受关注的新锐接口测试工具Bruno,给厌倦了Postman必须在线使用限制的同学提供了一个很好的替代选择。 Bruno的核心优势,官网重点给出了如下几点: 承诺开源和可扩展,并且专…...
LabVIEW 与 NI 硬件(PXI, CompactRIO, DAQ, RF, Vision)的深度研究与未来发展趋势-分析报告
LabVIEW 与 NI 硬件(PXI, CompactRIO, DAQ, RF, Vision)的深度研究与未来发展趋势 引言 本报告旨在对 National Instruments (NI) 的 LabVIEW 软件平台及其核心硬件产品线,包括 PXI、CompactRIO、DAQ、RF 和 Vision 系列,进行深…...
上海雏鸟科技再赴越南,助力10518架无人机刷新吉尼斯记录
近日,上海雏鸟科技携手深圳大漠大、河南豆丁智能在越南胡志明市,使用10518架无人机刷新了“最多无人机同时起飞”的世界吉尼斯记录。本次无人机灯光秀表演以越南南部解放50周年为背景突出了越南历史与民族文化的主题,是一场融合了技术与艺术的…...
在云环境中部署Redis服务与自建Redis服务有啥不同?
云服务 Redis概述 常见的云服务Redis提供商有(阿里云 Redis、华为云 Redis、AWS ElastiCache for Redis等)。这些云提供商负责底层基础设施的部署、配置、维护、操作系统的管理、补丁升级、硬件故障处理等大部分繁琐的运维工作。我们只需要通过控制台或…...
C++类对象的隐式类型转换和编译器返回值优化
文章目录 前言1. 隐式类型转换1.1 单参数的隐式类型转换1.2 多参数的隐式类型转换1.3 explicit关键字 2. 编译器的优化2.1 普通构造优化2.2 函数传参优化2.3 函数返回优化 前言 在类与对象的学习过程中,一定会对隐式类型转换这个词不陌生。对于内置类型而言&#x…...
西门子 PLC 串口转网口模块
在工业自动化领域,高效稳定的通信是保障生产顺畅运行的关键。三格电子西门子 PLC 串口转网口模块,型号涵盖 SG-S7-200-ETH、SG-S7-200-ETH (2P)、SG-S7-300-ETH、SG-S7-300-ETH (2P) 网口扩展与协议支持:该系列模块专为西门子 S7-200/300 PL…...
MATLAB制作直方图
一、什么是直方图? 直方图(Histogram)是一种用于显示数据分布的图形工具。它通过将数据分成若干个区间,统计每个区间内数据的数量或频率,从而形成类似柱状图的形式。它能帮助我们直观了解数据的集中程度、分布形状、离…...
Linux NVIDIA 显卡驱动安装指南(适用于 RHEL/CentOS)
📌 一、禁用 Nouveau 开源驱动 NVIDIA 闭源驱动与开源的 nouveau 驱动冲突,需先禁用: if [ ! -f /etc/modprobe.d/blacklist-nouveau.conf ]; thenecho -e "blacklist nouveau\noptions nouveau modeset0" | sudo tee /etc/modpr…...
微机控制电液伺服拉扭疲劳试验系统
微机控制电液伺服拉扭疲劳试验系统,主要用于测定金属材料及其构件在正弦波、三角波、方波、梯形波、斜波、程序块波谱状态下进行: 拉压扭复合疲劳; 单纯的扭转疲劳试验; 拉压扭复合疲劳作用下材料的断裂韧性试验; 拉压…...
ElementUI 表格el-table自适应高度设置
el-table表格占满页面剩余的全部高度空间 首先,el-table父节点要使用flex布局和超出隐藏(overflow: hidden),设置样式如下: .list{flex: 1;display: flex;flex-direction: column;overflow: hidden; }其次࿰…...
深入探索Linux命名管道(FIFO):原理、实践与高级技巧
引言:跨越进程的“文件桥梁” 在Linux的进程间通信(IPC)机制中,命名管道(Named Pipe,FIFO) 是一个看似简单却功能强大的工具。它不仅保留了匿名管道的流式数据传输特性,还通过文件系…...
光伏政策“430”“531”安科瑞光储充为新能源提供解决方案有哪些?
简婷 安科瑞电气股份有限公司 上海嘉定 201801 一、政策节点“430”与“531”的含义 2025年分布式光伏行业的两大核心节点——“4月30日”(430)和“5月31日”(531),分别对应《分布式光伏发电开发建设管理办法》实施…...
VScode一直处于循环“正在重新激活终端“问题的解决方法
方法一: 键盘使用 “ctrlshiftp” 调出快捷命令,也可以按F1,并输入“>Python: Clear Cache and Reload Window ”,回车。清除 VSCode 先前的缓存内容,如下图所示。 方法二: 键盘使用 ” ctrl ,"…...
CAN报文逆向工程
在没有DBC文件的情况下解析CAN报文获取物理信息需要逆向工程和系统分析。以下是详细步骤: 1. 数据采集与基础分析 采集原始数据: 使用CAN分析工具(如PCAN-Explorer、SavvyCAN或USB-CAN适配器配套软件)记录车辆在不同状态下的CAN数…...
文件包含漏洞学习
理论 什么是文件包含漏洞 就是允许攻击者包含并执行非预期的文件。也就是通过PHP函数引入文件时,传入的文件名(或者文件内容)没有经过合理的验证,从而操作了预想之外的文件,就可能导致意外的文件泄漏甚至恶意代码注入…...
Linux基本操作——网络操作文件下载
6.网络操作文件下载 (1)在VMware Workstation中配置固定IP 配置固定IP需要的两个大步骤 VMware Workstation中的配置 步骤概述:配置IP地址、网关和网段(IP地址范围) Linux系统中的配置 步骤概述:手动修改…...
【ARM AMBA AHB 入门 3.1 -- AHB控制信号】
文章目录 AHB控制信号传送状态HTRANS[1:0]批量传送HBURST[2:0]传送方向HWRITE传送大小HSIZE[2:0]保护控制HPROT[3:0]响应信号 HRESP[1:0] AHB控制信号 传送状态HTRANS[1:0] 在AHB总线上, Master (M) 的传送状态可由HTRANS[1:0]来表示,这两位所代表的意…...
Amazing晶焱科技:系统级 EOS 测试方法 - System Level EOS Testing Method
系统上常见的EOS测试端口以AC电源、电话线(RJ11)、同轴电缆(coaxial cable)以及以太网络(RJ45)最常见,这些端口因有机会布线至户外的关系,受到EOS/Surge冲击的几率也大大提升。因此电…...
基于DR模式的LVS集群案例
一.环境描述 如上图所示,后端是一个NFS服务器实现共享文件,调度器是一个高可用的环境, 这是基于LVS的DR模式实现的一个负载均衡集群。 keepalived在于LVS结合使用的时候,会自动实现很多功能。 比如,第一点我们可以修…...
Spark jdbc写入崖山等国产数据库失败问题
随着互联网、信息产业的大发展、以及地缘政治的变化,网络安全风险日益增长,网络安全关乎国家安全。因此很多的企业,开始了国产替代的脚步,从服务器芯片,操作系统,到数据库,中间件,逐步实现信息技术自主可控,规避外部技术制裁和风险。 就数据库而言,目前很多的国产数据…...
Chain-of-Draft (CoD) 是提示工程的新王者
图像由 DALLE 3 生成 推理型大模型,是当前 AI 研究的热门话题。 我们从最早的 GPT-1 一路走到现在像 Grok-3 这样的高级推理模型。 这段旅程可以说非常精彩,过程中也发现了很多重要的推理方法。 其中之一就是 Chain-of-Thought(CoT࿰…...
隐私计算技术及其在数据安全中的应用:守护数据隐私的新范式
前言 在数字化时代,数据已成为企业和组织的核心资产。然而,数据的收集、存储和使用过程中面临着诸多隐私和安全问题。随着法律法规对数据隐私的监管日益严格,企业和组织需要在数据利用与隐私保护之间找到平衡。隐私计算技术作为一种新兴的数据…...
使用Milvus向量数据库构建具有长期记忆的对话机器人
一、申请Milvus试用版 快速创建Milvus实例_向量检索服务 Milvus 版(Milvus)-阿里云帮助中心 二、配置 pip3 install pymilvus tqdm dashscope 由于在下文使用的时候需要用到Milvus的公网地址,而公网地址需要我们手动开启,参考下面这篇文章开启公网地…...
[Es_1] 介绍 | 特点 | 图算法 | Trie | FST
编程就是一门不断试错的艺术。不要害怕犯错,实践才会出真知。 什么是ElasticSearch? Elasticsearch是一个分布式的免费开源搜索和分析引擎 适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。 Elasticsearch在Apache Luc…...
企业安装加密软件有什么好处
企业安装加密软件可以有效保护敏感数据安全,防止信息泄露,并满足合规要求。以下是其主要好处及具体应用场景: 1. 防止数据泄露,保护核心资产 文件加密:对敏感文件(如财务数据、客户信息、设计图纸ÿ…...
【MVCP】基于解纠缠表示学习和跨模态-上下文关联挖掘的多模态情感分析
多处可看出与同专栏下的DCCMCI很像 abstract 多模态情感分析旨在从多模态数据中提取用户表达的情感信息,包括语言、声学和视觉线索。 然而,多模态数据的异质性导致了模态分布的差异,从而影响了模型有效整合多模态互补性和冗余性的能力。此外,现有的方法通常在获得表征后直…...
2025软考【系统架构设计师】:两周极限冲刺攻略(附知识点解析+答题技巧)
距离2025上半年“系统架构设计师”考试已经只剩最后两周了,还没有准备好的小伙伴赶紧行动起来。为了帮助大家更好的冲刺学习,特此提供一份考前冲刺攻略。本指南包括考情分析、答题技巧、注意事项三个部分,可以参考此指南进行最后的复习要领&a…...
企业该如何选择合适的DDOS防护?
在互联网行业当中,大型的网络游戏和网络视频企业会经常受到DDOS攻击和CC攻击,这些网络攻击会导致服务器崩溃或者是网络中断,给企业造成巨大的经济损失,所以企业通常会配备合适的DDOS防护来进行防御,但是,对…...
CPU-GPU-NPU-TPU 概念
1.CPU 中央处理器(Central Processing Unit,简称CPU)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。CPU自产生以来,在逻辑结构、运行效率以及功能外延上取得了巨大发展。 2.GPU GPU࿰…...
DELL R770 服务器,更换OCP模块!
今天接到客户报修电话,说有一台 DELL PowerEdge R770服务器,网卡出现了故障,需要更换OCP模块。顺便做一个教程,分享给有需要的小伙伴们。 这一期的教程,听起来好像很高大上,很多小伙伴可能不知道OCP是什么…...
go.mod没有自动缓存问题
今天在安装Gin框架的时候遇到了一个问题 在Terminal运行下面命令安装时,包已经被下载安装到了GoPath中的bkg/mod go get -u github.com/gin-gonic/gin但是由于使用的是Go Modules,GPT以及大多数人给的说法是 运行完这个依赖包会被自动同步更新到go.mod…...
黑电平校正(Black Level Correction, BLC)算法
黑电平校正(Black Level Correction, BLC)算法 黑电平校正(BLC)是图像传感器(如CMOS/CCD)信号处理中的一个重要步骤,主要用于消除传感器暗电流(Dark Current)导致的基线…...
Ubuntu 安装 Keepalived
Keepalived 是什么 Keepalived 是一个用于实现高可用性(High Availability, HA)的服务,是一款基于 VRRP 协议的高可用软件,常用于主备切换和虚拟IP漂移,在服务故障时自动实现故障转移。 Keepalived 的核心功能 功能说…...
基于SpringBoot和PostGIS的应急运输事件影响分析-以1.31侧翻事故为例
目录 前言 一、技术实现路径 1、需要使用的数据 2、空间分析方法 二、相关模块设计与实现 1、运输路线重现开发 2、事故点影响范围实现 3、WebGIS可视化实现 三、讨论 1、界面结果展示 2、影响范围分析 四、总结 前言 在交通运输发达的当今社会,应急运输…...
ABP-Book Store Application中文讲解 - 前期准备 - Part 2:创建Acme.BookStore + Angular
ABP-Book Store Application中文讲解-汇总-CSDN博客 因为本系列文章使用的.NET8 SDK,此处仅介绍如何使用abp cli .NET 8 SDK SQL sevrer 2014创建Angular模板的Acme.BookStore。 目录 1. ABP cli创建项目 1.1 打开cmd.exe 1.2 创建项目 2. ABP Studio创建项…...
grpc到底是啥! ! !!
一、什么是RPC(Remote Procedure Call) 简单理解: RPC是一种让程序可以像调用本地函数一样去调用远程机器上的函数或方法。它的目标:让分布式系统中的不同计算机可以透明地互相通信,实现远程服务调用的封装。 举个例…...
ES6入门---第三单元 模块五:Map和WeakMap
map: users.map((user) 遍历 类似 json, 但是json的键(key)只能是字符串 map的key可以是任意类型 使用: let map new Map(); map.set(key,value); 设置一个值 map.get(key) 获取一个值 map.delete(key) 删除一项 map.has(key) 判断有没有 map.clear…...
【C++】【数据结构】【API列表】标准库数据结构
标准库数据结构 unordered_set 头文件:#include <unordered_set> 特性: 唯一性:所有元素唯一,重复插入无效无序性:元素存储顺序不固定自定义类型:若存储自定义类型需提供哈希函数和相等比较器 …...
三、Hadoop1.X及其组件的深度剖析
作者:IvanCodes 日期:2025年5月7日 专栏:Hadoop教程 一、Hadoop 1.X 概述 (一)概念 Hadoop 是 Apache 开发的分布式系统基础架构,用 Java 编写,为集群处理大型数据集提供编程模型,…...
stm32常见错误
1.使用LCD屏幕时,只用st-link时,亮度很暗,需要用usb数据线额外给屏幕供电; 2.移植freertos到f103c8t6芯片时,工程没有错误,但单片机没有反应; 需要将堆的大小改成10*1024; 3.在找已经…...
《Python星球日记》 第46天:决策树与随机森林
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏:《Python星球日记》,限时特价订阅中ing 目录 一、前言二…...
【Pandas】pandas DataFrame expanding
Pandas2.2 DataFrame Function application, GroupBy & window 方法描述DataFrame.apply(func[, axis, raw, …])用于沿 DataFrame 的轴(行或列)应用一个函数DataFrame.map(func[, na_action])用于对 DataFrame 的每个元素应用一个函数DataFrame.a…...
【SpringCloud GateWay】Connection prematurely closed BEFORE response 报错分析与解决方案
一、背景 今天业务方调用我们的网关服务报错: Connection prematurely closed BEFORE response二、原因分析 三、解决方案 第一步: 增加 SCG 服务的JVM启动参数,调整连接获取策略。 将连接池获取策略由默认的 FIFO(先进先出)变更为 LIFO(…...
【行业】一些名词
名词 分布式应用架构(分布式计算技术的应用和工具)中间件 中间件(Middleware)主流中间件技术1.通信类2.数据类3. **协调与治理类中间件**4. 监控与可观测性中间件5.**流处理与批处理**中间件6.云原生中间件 数据库Redismogodb 分布…...
深度学习模型的部署实践与Web框架选择
引言 在深度学习项目的完整生命周期中,模型训练只是第一步,将训练好的模型部署到生产环境才能真正发挥其价值。本文将详细介绍模型部署的核心概念、常见部署方式以及三种主流Python Web框架的对比分析,帮助开发者选择最适合自己项目的技术方…...
【笔记】当个自由的书籍收集者从canvas得到png转pdf
最近有点迷各种古书,然后从 www.shuge.org 下载了各种高清的印本,快成db狂魔了…上面也有人在各种平台上分享,不胜感激…只是有些平台可以免费看但是没法下载… 反正你都canvas了,撸下来自己珍藏… 于是让qwen写了一段代码&#…...
Ubuntu 配置网络接口端点(静态 IP 地址)详细教程
在 Ubuntu 系统中,配置网络接口端点通常指的是为您的有线或无线网卡设置一个固定的 IP 地址、子网掩码、网关以及 DNS 服务器。这对于服务器或者需要稳定网络标识的设备来说非常重要。 使用 Netplan (Ubuntu 17.10 及更高版本的默认方式)使用 ifupdown (通过 /etc/…...