Mac —— Docker Desktop(Milvus和Redis)部署

目录

一、概念

[二、Docker 初始化](#二、Docker 初始化)

三、验证Milvus

四、验证Redis

五、安装WSL(Window系统)

六、Docker命令使用

警告⚠️

修复方法

7、总结


本篇为了备忘录,记录下日常容器轻量化环境部署 。

一、概念

Docker 是容器化工具,能把代码、依赖、环境打包成一个独立 "容器"

Milvus 是一个开源、分布式、专为 AI 设计的「向量数据库」

Redis 是一款高性能的「内存键值数据库」,主打超快读写,常用来做缓存、临时存储、队列。

二、Docker 初始化

window的先装 WSL,看目录五。

官网下载:Docker Desktop: The #1 Containerization Tool for Developers | Docker

docker-compose.ymlDocker 多容器编排配置文件

作用:用一份文本配置,一次性启动、管理多个关联的 Docker 容器

比如:启动Milvus和Redis 不需要一个个启动,停止。

指令:docker compose up -d 拉去镜并且启动容器

docker-compose.yml 文件在哪,通过终端去该文件的路径下,执行

文件内容:这里Redis:端口6379, Milvus 端口19530 等

复制代码
version: "3.8"   # 语法版本,固定写法

services:        # 下面就是一个个「容器服务」
  # 第一个服务:Redis
  redis:
    image: redis:7-alpine   # 使用哪个镜像
    ports:
      - "6379:6379"         # 端口映射:宿主机:容器内
    volumes:
      - ./redis-data:/data  # 数据持久化:把容器数据存到本地文件夹

  # 第二个服务:Milvus 依赖 etcd
  milvus-etcd:
    image: quay.io/coreos/etcd:v3.5.16
    # 配置、目录...

  # 第三个服务:Milvus 依赖 minio(存文件)
  milvus-minio:
    image: minio/minio:xxx

  # 第四个服务:主程序 Milvus 向量库
  milvus:
    image: milvusdb/milvus:v2.4.10
    depends_on:             # 依赖:先启动 etcd、minio,再启动 Milvus
      - milvus-etcd
      - milvus-minio
    ports:
      - "19530:19530"
      - "9091:9091"

networks:        # 统一网络:让多个容器互相通信
  rag-net:

如果是window中 遇到拉去镜像报错。

复制下面这段 到 Docker -> Setting -> Docker Engine

复制代码
"registry-mirrors": [
    "https://docker.211678.top",
    "https://docker.1panel.live",
    "https://hub.rat.dev",
    "https://docker.m.daocloud.io",
    "https://do.nark.eu.org",
    "https://dockerpull.com",
    "https://dockerproxy.cn",
    "https://docker.awsl9527.cn"
]

然后再次去 milvus_data 目录下,打开 cmd终端。

三、验证Milvus

Python代码

python 复制代码
from pymilvus import MilvusClient

# 连接milvus
client = MilvusClient("http://localhost:19530")

# 显示当前milvus的数据库
print('databases-->', client.list_databases())

可视化工具:推荐Attu

官网:Releases · zilliztech/attu · GitHub

四、验证Redis

python 复制代码
import redis

# 连接到 Redis
client = redis.Redis(host="localhost", port=6379, password=1234, decode_responses=True)

# 测试读写
client.set("test_key", "Hello, Redis!")
value = client.get("test_key")
print(f"Redis value: {value}")

可视化工具:推荐Tiny RDM

官网:Tiny RDM | Redis Desktop Manager

五、安装WSL(Window系统)

WSL = Windows Subsystem for Linux,Windows 官方内置的 Linux 子系统Microsoft Learn。

① 不用装虚拟机(VMware/VirtualBox)

② 不用重启切双系统

③ 直接在 Windows 里开一个 Linux(Ubuntu 等)终端

④ WSL2 是轻量虚拟机内核,性能接近原生 Linux

服务器基本都是 Linux,本地环境要一致

bash 复制代码
wsl --install 

耗时比较长。

安装完成后,重启时,可能会弹出如下对话框,代表WSL安装成功,关闭即可。

六、Docker命令使用

常用:

必须在 docker-compose.yml 所在文件夹执行

  1. 一键启动 Milvus + Redis + Attu

docker compose up -d

  1. 查看运行状态

docker compose ps

  1. 实时看日志排错

docker compose logs -f

  1. 日常停止服务

docker compose stop

  1. 彻底销毁容器(保留数据)

docker compose down

警告⚠️

WARN0000 /Users/.../docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion

修复方法

<1> 打开你的 docker-compose.yml 文件

<2> 直接删掉第一行的 version: "3.8"(或你写的其他版本号)

运行中不影响,重新docker compose ps 看下 就没了

7、总结

Mac 自带类 Unix 环境,不用折腾;Windows 没有,所以要用 WSL 补上 Linux 能力,让开发、跑服务、跑 Docker 更顺、更接近线上环境

相关推荐
lv__pf2 小时前
redis【msb 2026金三银四redis上】
数据库·redis·缓存
spter。5 小时前
一次 Redis SETNX 的小插曲,我重新理解了原子性
前端·redis·bootstrap
core5125 小时前
如何从多架构 Docker 镜像中导出指定的 ARM64 版本
华为·docker·架构·镜像·导出·多架构
雪碧聊技术5 小时前
使用Docker,将fastApi项目部署到linux服务器
服务器·docker·fastapi·docker部署fastapi
我有2只猫6 小时前
vLLM Docker 本地部署小模型
docker·容器·vllm
Oo9207 小时前
Docker 入门:把应用和运行环境一起打包
docker
淼澄研学9 小时前
基于RAG与Milvus向量数据库的搜题长尾问题检索实操教程
数据库·milvus
梦梦代码精9 小时前
用开源BuildingAI打造C端AI助手,内置写作/绘画/长文/漫剧,商业化模块全预制
docker·ai·ai作画·开源·代码规范
霸道流氓气质9 小时前
Redis Pub/Sub — 概念、原理、场景与代码示例
数据库·redis·缓存
huaiixinsi9 小时前
Docker 负责打包,Kubernetes 负责调度:一文吃透容器化与 K8s 编排
docker·容器·kubernetes