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

相关推荐
杨了个杨89822 小时前
docker的网络模式
网络·docker·容器
万亿少女的梦1682 小时前
基于微信小程序、Spring Boot与Vue3的智慧养老管理系统设计与实现
spring boot·redis·微信小程序·mybatis·vue3
Zhu7583 小时前
对docker环境的postgresql数据库做快速初始化
数据库·docker·postgresql
杨浦老苏4 小时前
实测2.8MB的Rust笔记服务:MinimaMemosa部署教程
笔记·docker·群晖
蚰蜒螟4 小时前
从 Jedis 到内核:深入剖析 Redis BRPOP 的阻塞与唤醒机制
数据库·redis·缓存
spider_xcxc4 小时前
docker-compose.yaml 是“开发/测试环境”的利器,而 Kubernetes 配置是“生产环境”的标准。
docker·容器·kubernetes
糖果店的幽灵5 小时前
【langgraph 从入门到精通graphApi 篇】节点与边 —— 图的骨架
java·数据库·人工智能·redis·langgraph
chen_ke_hao5 小时前
K8s 高可用集群部署
java·docker·kubernetes
后端观测站5 小时前
第八篇:Redis 为什么不会每次修改都写磁盘?
数据库·redis·缓存
辞旧 lekkk15 小时前
【Redis初阶】常见数据类型
开发语言·数据库·c++·redis·学习·缓存·bootstrap