Background
1815 字
9 分钟
LocalAI 本地部署指南
NOTE

LocalAI is the free, Open Source OpenAI alternative. LocalAI act as a drop-in replacement REST API that’s compatible with OpenAI (Elevenlabs, Anthropic… ) API specifications for local AI inferencing. It allows you to run LLMs, generate images, audio (and not only) locally or on-prem with consumer grade hardware, supporting multiple model families. Does not require GPU.(摘自https://github.com/mudler/LocalAI

本文旨在向你介绍如何使用 Docker 在安装了 Windows 11 操作系统的个人电脑上部署 LocalAI 服务

相比于 Ollama,LocalAI 支持更多类型的 AI 大模型,例如语音合成、图像生成等等,同时 LocalAI 也支持从多种途径下载模型文件,例如 HuggingFace、Ollama 和 Docker Hub

TIP

本文 100% 由人类编写

安装Docker#

CAUTION

Docker 官网为https://www.docker.com,其他号称 “Docker官方网站” 的网站一律为假!!!由于受不可抗力影响,Docker 网站目前访问受阻,导致从Docker Hub拉取镜像往往出现速度慢拉取超时等问题,但是您可以使用诸如Steamcommunity 302下载链接)等工具加速访问

访问https://www.docker.com下载Docker Desktop Installer.exe可执行文件(当然,Docker Desktop 也在微软商店提供安装,但我未验证这种安装方法是否可以更改安装位置)

更改安装位置#

由于Docker Desktop默认安装在 C 盘(C:\Program Files\Docker\Docker),我们可以通过命令行将Docker Desktop安装到指定目录(在文件所在的目录启动终端)

PowerShell
.\'Docker Desktop Installer.exe' install --installation-dir="D:\Docker"

这将使Docker Desktop安装到D:\Docker,需要提前在D盘根目录下创建名为Docker的文件夹,否则命令会执行失败

安装时选择默认选项即可,安装完成后重启电脑,这会启用WSL(适用于 Linux 的 Windows 子系统)

电脑重启后会弹出以下弹窗,请根据提示升级WSL版本,此操作需要良好的网络连接

如果你不慎关闭此窗口,请以管理员身份运行终端并执行以下命令:

PowerShell
wsl.exe --update

当终端输出类似以下内容时,你可以安全地关闭终端:

启动Docker Desktop并跳过登录

更改默认镜像保存位置#

Docker 的镜像默认安装在%UserProfile%\AppData\Local\Docker\wsl目录下,建议将目录更改到除 C 盘外的其他位置,Docker 会自动在选定的目录下增加子DockerDesktopWSL文件夹

点击Apply & restart保存设置

安装LocalAI#

访问LocalAI官方文档 https://localai.io/installation/docker/,根据设备硬件配置选择合适的 Images 运行命令,这里以 NVIDIA CUDA 13为例

TIP

在 Docker 内置的终端运行以下所有命令:点击终端图标再点击Enable(首次)

拉取镜像#

Standard Images(标准镜像)标准镜像不包含预配置的模型,如果您想手动配置模型,请使用这些镜像。

PowerShell
docker run -ti --name local-ai -p 8080:8080 --gpus all localai/localai:latest-gpu-nvidia-cuda-13

All-in-One (AIO) Images(All-in-One 镜像,推荐)适合新手 - 这些镜像已预先配置好模型和后端,开箱即可使用。

PowerShell
docker run -ti --name local-ai -p 8080:8080 --gpus all localai/localai:latest-aio-gpu-nvidia-cuda-13
NOTE

接下来我们使用 All-in-One 镜像(但是这个镜像占用的空间会非常大,虚拟磁盘文件大约有40GB,如果你的硬盘没有那么大的空间,建议你拉取标准镜像,这个会相对小亿点,大约在10GB左右,就是配置相对会比较麻烦)

镜像拉取的整个过程都需要稳定的网络连接,若您的网络连通顺畅,您应该看到类似以下的输出内容(已抹除部分 GPU 硬件信息):

此时关闭终端(不是结束运行)你将看到以下内容,这表明 LocalAI 已成功安装,ID 为 f89d05a440f1******** 的容器已成功运行:

NOTE

等待模型以及后端文件下载完成(可在日志(Logs)或终端中查看进度),否则http://localhost:8080无法打开

完整安装完成后,docker_data.vhdx文件大小将达到40GB以上

在 Docker 内执行 nvidia-sminvcc --version 命令,你应当看到以下类似的输出(已抹除部分 GPU 硬件信息):

这表明已成功启动 CUDA(NVIDIA) 加速

此时访问http://localhost:8080,你将看到 LocalAI WebUI 的初始界面:

恭喜!软件安装阶段大功告成!👍

部署AI模型#

TIP

访问https://models.localai.io(会重定向到https://localai.io/gallery.html)查看受支持的 AI 模型

由于 All-in-One 镜像内置了 8 个模型(gpt-4gpt-4ojina-reranker-v1-base-ensilero-vadstablediffusiontext-embedding-ada-002tts-1whisper-1)(磁盘空间:⚠️危)

TIP

点击Browse Gallery查找并下载模型

如果你发现容器启动时日志有错误信息,且在容器内的model文件夹下发现有后缀为partial的文件,请将其删除并重启容器,这会重新下载该未完全下载的文件

我们来测试一下GPT-4o模型:

tts-1(生成的语音文件这里就不放出来了)

其余的这里就不展示了,具体的请查看 LocalAI 官方文档

压缩虚拟硬盘映像文件#

NOTE

Windows 的 Docker Desktop 基于 WSL2 来运行,所有的 Image、Container 数据都会被放到 WSL2 的虚拟磁盘文件(vhdx)中。而 WSL2 的 vhdx 具有“动态”特性,即当磁盘文件创建时,初始化一个最大的上限容量(默认是 1TB ),当里面数据增加时,vhdx 所占的空间随之增加,直到上限,但当里面的数据被移除时,vhdx 所占的空间并不会随之减小。这导致即使在 Docker 里删除了镜像文件,也无法即时释放磁盘的存储空间。

参考:如何管理 WSL 磁盘空间 | Microsoft Learn

首先你需要关闭 WSL(如果你开启了 Docker Desktop,或者 Docker Desktop 关闭的时候卡住了,请重启电脑,记得关闭 Docker Desktop 的自启动)

PowerShell
wsl --shutdown

以管理员身份运行终端:

PowerShell
diskpart

类似输出:

PowerShell
Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。
安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows
PS C:\Users\Admin> diskpart
Microsoft DiskPart 版本 10.0.26100.1150
Copyright (C) Microsoft Corporation.
在计算机上: WINDOWS11-ADMIN
DISKPART>

输入并执行:

PowerShell
select vdisk file="<vhdx文件路径>"

例如:

PowerShell
Microsoft DiskPart 版本 10.0.26100.1150
Copyright (C) Microsoft Corporation.
在计算机上: WINDOWS11-ADMIN
DISKPART>select vdisk file="E:\DockerDesktopWSL\disk\docker_data.vhdx"
DiskPart 已成功选择虚拟磁盘文件。
DISKPART>

压缩磁盘(依次执行):

PowerShell
attach vdisk readonly
PowerShell
compact vdisk

若遇到报错:

PowerShell
DISKPART> compact vdisk
虚拟磁盘服务错误:
所请求的操作需要以只读方式
连接虚拟磁盘。

则先分离磁盘文件:

PowerShell
detach vdisk

再依次执行以下命令:

PowerShell
attach vdisk readonly
PowerShell
compact vdisk

就像这样:

PowerShell
DISKPART> compact vdisk
虚拟磁盘服务错误:
所请求的操作需要以只读方式
连接虚拟磁盘。
DISKPART> detach vdisk
DiskPart 已成功分离虚拟磁盘文件。
DISKPART> attach vdisk readonly
100 百分比已完成
DiskPart 已成功连接虚拟磁盘文件。

最后你应该看到:

PowerShell
DISKPART> compact vdisk
100 百分比已完成
DiskPart 已成功压缩虚拟磁盘文件。

退出 DiskPart:

PowerShell
detach vdisk
PowerShell
exit

大功告成:

PowerShell
DISKPART> detach vdisk
DiskPart 已成功分离虚拟磁盘文件。
DISKPART> exit
退出 DiskPart...
PS C:\Users\Admin>

此时你再去文件资源管理器里看看,你的磁盘空间应该得到了一定的释放

TIP

值得注意的是,由于模型参数量模型版本以及设备算力的差异,您在本地运行的模型在使用体验上可能不如在线模型

LocalAI 本地部署指南
https://auspiceshirley.dev/posts/localai/
作者
Shirley Auspice
发布于
2026-02-04
许可协议
CC BY-NC-SA 4.0