WSL2部署docker、dockercompose以及milvus
(适用于 Windows 10 2004+/Windows 11,无需安装 Windows 版 Docker Desktop,纯 WSL 环境运行)
wsl
1. 以管理员身份打开「PowerShell」
(右键开始菜单 → 选择「Windows PowerShell (管理员)」,Win11 可选「终端 (管理员)」)
2. 启用 WSL 和虚拟化功能
执行以下命令(需重启电脑):
# 启用 WSL、虚拟机平台功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
3. 重启电脑
上述命令执行完后,必须重启电脑让功能生效。
4. 安装 WSL 2 内核更新包
下载微软官方 WSL 2 内核更新包(64 位系统):https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
下载后双击安装(默认下一步即可)。
5. 设置 WSL 2 为默认版本
打开 PowerShell(无需管理员),执行:
wsl --set-default-version 2
6. 安装 Linux 发行版(以 Ubuntu 22.04 为例,推荐)
- 首先在power shell(管理员)中输入
wsl --list --online -

- 安装Ubuntu,输入
wsl --install Ubuntu-24.04 - 按提示设置 Linux 用户名和密码(密码输入时不显示,正常输入即可)。
7. 验证 WSL 版本(确保是 WSL 2)
在 PowerShell 中执行:
wsl --list --verbose
输出中「VERSION」列显示「2」,且 Ubuntu 状态为「Running」,则 WSL 2 配置成功。
在 WSL(Ubuntu 22.04)中安装 Docker
1. 打开 WSL 终端(Ubuntu 22.04)
方法 1:开始菜单 → 找到「Ubuntu 22.04 LTS」点击启动;
方法 2:PowerShell 中执行 wsl 直接进入 WSL 终端。
wsl
2. 更新 Ubuntu 系统包(避免安装依赖冲突)
执行以下命令(输入之前设置的 Linux 密码确认):
sudo apt update && sudo apt upgrade -y
3. 安装 Docker 依赖工具
sudo apt install -y ca-certificates curl gnupg lsb-release
4.添加密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
5.添加仓库
echo
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg]
https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable" |
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
如果出现tee: /etc/apt/source.list.d/docker.list: No such file or directory
说明WSL 中的 Ubuntu 系统默认没有 /etc/apt/source.list.d/ 这个目录(该目录用于存放第三方软件源的配置文件,部分精简版或初始状态的 Ubuntu 可能未自动创建),导致 tee 命令无法在不存在的目录下创建 docker.list 文件。
所以要创建 /etc/apt/source.list.d/ 目录
sudo mkdir -p /etc/apt/source.list.d/
然后再执行前面的指令
后续验证:确认文件是否创建成功
cat /etc/apt/source.list.d/docker.list
6.更新 APT 仓库缓存(让系统识别新添加的国内源)
sudo apt update
7.安装 Docker 引擎(Engine)
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
8.让 Docker 在 WSL 下无需 sudo
sudo groupadd docker
sudo usermod -aG docker $USER
推出wsl再重新进入
exit
重新打开Ubuntu终端后测试
docker --version
9.启动docker守护进程
在wsl中运行
sudo service docker start
测试
docker run hello-world
正常会输出
Hello from Docker!
不正常的话会生成(只是其中一种情况但是大部分都是镜像源的原因,换就完了)
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: failed to resolve reference "docker.io/library/hello-world:latest": failed to do request: Head "https://docker.mirrors.ustc.edu.cn/v2/library/hello-world/manifests/latest?ns=docker.io": dial tcp: lookup docker.mirrors.ustc.edu.cn on 114.114.114.114:53: no such host
这时候要考虑切换镜像源
sudo nano /etc/docker/daemon.json
添加
{
"registry-mirrors":["https://docker.1ms.run"]
}
然后再执行
sudo systemctl daemon-reload && sudo systemctl restart docker
再运行
docker run hello-world
就能成功了
本地部署Milvus
Milvus standalone 模式依赖 etcd(元数据存储)和 minio(对象存储),通过 Docker Compose 一键编排。
1.下载Milvus配置文件
# 创建 Milvus 工作目录
mkdir -p ~/milvus-standalone && cd ~/milvus-standalone
# 下载 Milvus 2.4.5 的 docker-compose.yml(官方稳定版)
wget https://github.com/milvus-io/milvus/releases/download/v2.4.5/milvus-standalone-docker-compose.yml -O docker-compose.yml
2.启动Milvus
# 后台启动 Milvus 及依赖组件(-d 表示 detached 模式)
docker compose up -d
# 查看容器状态(确保 milvus-standalone、etcd、minio 均为 Up 状态)
docker compose ps
正常输出示例:
| NAME | IMAGE | COMMAND | SERVICE | CREATED | STATUS | PORTS |
| milvus-etcd | quay.io/coreos/etcd:v3.5.5 | etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 -data-dir /etcd-data | etcd | 50 seconds ago | Up 48 seconds | 2379-2380/tcp |
| milvus-minio | minio/minio:RELEASE.2023-03-20T20-16-18Z | /usr/bin/docker-entrypoint.sh minio server /minio-data --console-address ":9001" | minio | 50 seconds ago | Up 48 seconds | 9000-9001/tcp |
| milvus-standalone | milvusdb/milvus:v2.4.5 | /tini -- milvus run standalone --config /milvus/configs/milvus.yaml | milvus-standalone | 50 seconds ago | Up 48 seconds | 0.0.0.0:19530->19530/tcp, 0.0.0.0:9091->9091/tcp |
3. 验证 Milvus 部署成功
# 查看 Milvus 服务日志(确认无报错)
docker compose logs milvus-standalone | grep "Milvus started successfully"
# 若输出类似 "Milvus started successfully in standalone mode",说明启动成功
Milvus 默认端口:
19530:gRPC 接口端口(Java SDK 连接用)
9091:HTTP 接口端口(可选,用于 RESTful API 调用)
更多推荐
所有评论(0)