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 更顺、更接近线上环境

相关推荐
leeyi1 天前
Checkpoint 机制:Agent 怎么在断电后接着跑
redis·aigc·agent
云技纵横2 天前
一个 @Async 让循环依赖暴雷:Spring 代理的暗坑
redis
Patrick_Wilson3 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
犯困蛋挞yy3 天前
用Claude快速解决Redis代码报错反复无解的问题
redis
Suroy3 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭3 天前
运行你的第一个Docker容器
后端·docker·容器
宋均浩4 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
程序员老赵5 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
WangMingHua1115 天前
LM Studio Docker 部署——本地大模型一键启动
docker
曲幽6 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate