ollama安装到指定路径

参考文献:windows将ollama及模型安装到D盘或其他盘符

默认情况下ollama和下载的llm都是安装在C盘上的,ollama本身的依赖就占了5GB,如果再加上LLM,非常占用空间,因此要将ollama及下载模型安装到其他盘符上,防止C盘空间爆满。

在ollama官网下载了它的安装包之后,双击安装包它会自动安装到C盘上,不给选择安装文件夹的选项,如果选择Install安装那就直接安装到C盘了;

Ollama

步骤

  1. 在ollama安装包存放的文件路径输入的cmd内输入如下命令, 回车
1
2
# 在命令行输入一下内容: 软件包名称  /DIR=指定目录
OllamaSetup.exe /DIR=E:\Ollama

设置安装路径

  1. 弹出安装程序,直接Install
  2. 修改大模型存储目录,打开环境变量设置,在环境变量中新建系统变量
1
2
3
4
5

变量名:OLLAMA_MODELS

# (自定义大模型存放路径)
变量值:E:\Ollama\.ollama
  1. 复制转移大模型存储目录,创建完环境变量后,将Ollama停止,进入C盘–>用户–>电脑名称–>.ollama–>复制整个models到刚刚上面新建的存储目录下。复制完成后删除C盘目录下的models文件夹。

  2. 重启Ollama 或 电脑 使环境变量生效,之后再下载大模型会安装到指定的目录中。

ollama下载大模型

关闭梯子 下载速度

ollama常用命令

当使用 Ollama 命令中涉及 <model_name> 参数时,需要带上模型名称后面的完整参数,包括冒号 : 和后面的标签(tag)

例如,在 ollama list 输出中,模型名称是 gemma3:4bdeepseek-r1:7b

  • 如果想运行 Gemma 3 的这个特定版本,你应该使用命令 ollama run gemma3:4b
  • 如果想删除 deepseek-r1 的那个版本,你应该使用命令 ollama rm deepseek-r1:7b

通常情况下,冒号后面的部分(也就是标签,如 :4b:7b:latest 等)是用来标记同一个基础模型的不同变体。这些变体往往是根据以下因素来区分的:

  • 参数量: 不同的标签可能对应模型不同的参数数量(例如,一个模型可能有 7B、13B、70B 等不同参数量的版本)。
  • 量化级别: 量化是减小模型大小和提高推理速度的技术。不同的标签可能表示模型使用了不同的量化级别(例如,:q4_0 表示使用了 4-bit 量化)。
  • 版本: 标签也可能用来区分模型的不同训练版本或更新。
命令 用途 示例
ollama list 列出本地已下载的模型 ollama list
ollama run <model_name> 运行指定模型并启动交互式对话(未下载则自动下载) ollama run llama3
ollama pull <model_name> 下载指定的模型 ollama pull mistral
ollama rm <model_name> 删除本地模型 ollama rm gemma3:4b
ollama create <new_model_name> -f <Modelfile_path> 根据 Modelfile 创建新模型 ollama create my-model -f ./Modelfile
ollama build <new_model_name> -f <Modelfile_path> 根据 Modelfile 构建新模型 (create 的别名) ollama build my-model -f ./Modelfile
ollama push <model_name> 推送本地模型到注册中心 ollama push my-model
ollama serve 启动 Ollama 服务 (通常在后台运行,手动启动时使用) ollama serve
ollama help 显示 Ollama 命令帮助信息 ollama help
ollama help <command> 显示特定命令的详细帮助信息 ollama help run

Windows Docker删除镜像,磁盘空间未释放问题

这种情况在 Windows 版 Docker Desktop 下是比较常见的。即使删除了镜像、容器和卷,D:\DockerHub 文件夹(或其他 Docker Desktop 存储数据的位置)占用的空间没有立刻减少,原因在于 Docker Desktop 的底层工作方式:

  • Docker Desktop 使用虚拟机 (VM): 在 Windows 上,Docker Desktop 不是直接在 Windows 系统上运行 Docker 引擎,而是会创建一个**轻量级的 Linux 虚拟机 (Windows Subsystem for Linux,WSL)**(在较新版本的 Windows 上通常是基于 WSL 2,旧版本可能基于 Hyper-V)。Docker 引擎和所有容器、镜像、卷等数据实际上都存放在这个 VM 的文件系统里。

  • 数据存储在虚拟硬盘文件里: 这个 Linux VM 的整个文件系统都被打包在一个虚拟硬盘文件里(通常是 .vhdx 格式)。D:\DockerHub 或者 Docker Desktop 配置的数据目录,存放的就是这个巨大的虚拟硬盘文件以及其他一些配置信息。

  • 删除数据只发生在 VM 内部: 当在 Docker Desktop UI 或通过命令删除镜像、容器、卷时,其实是在告诉 VM 内部的 Docker 引擎去删除数据。这些数据在 VM 内部的文件系统里被标记为已删除,对应的空间在 VM 内部的文件系统里是释放了。

  • 虚拟硬盘文件不会自动收缩: 然而,VM 的虚拟硬盘文件在你Windows 宿主机上(那个 .vhdx 文件)通常是动态扩展的,它会随着 VM 内部写入的数据增多而变大,但当从 VM 内部删除数据时,这个虚拟硬盘文件本身不会自动立即收缩把空间还给 Windows 宿主机。被删除数据占据的空间在虚拟硬盘文件里变成了“空闲但未释放”的状态。

如何回收这部分空间?

参考文献:Windows Docker删除镜像,磁盘空间未释放问题

需要进行额外的步骤来“压缩”或“优化”这个虚拟硬盘文件,让它把 VM 内部的空闲空间真正释放回给 Windows 宿主机。

已删除docker desktop的镜像列表

清理之前

操作步骤

  1. 查看镜像本地目录

docker存储路径

  1. 关闭Docker Desktop(要在右下角的图标上选择退出)

  2. 以管理员身份执行power shell命令 查看状态是Stopped证明docker彻底关闭

停止docker desktop

  1. 压缩虚拟磁盘文件
1
2
3
4
5
# 关闭WSL2 中的 linux distributions
PS C:\Windows\system32> wsl --shutdown

# 运行管理计算机的驱动器的 DiskPart 命令
PS C:\Windows\system32> diskpart

执行完diskpart会弹出命令窗口

  1. 执行命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DISKPART> select vdisk file="D:\DockerHub\DockerDesktopWSL\disk\docker_data.vhdx"
DiskPart 已成功选择虚拟磁盘文件。

# 压缩文件、等到百分百完成即可
DISKPART> compact vdisk
100 百分比已完成
DiskPart 已成功压缩虚拟磁盘文件。

# 压缩完毕后卸载磁盘
DISKPART> detach vdisk
虚拟磁盘服务错误:
虚拟磁盘已经分离。
DISKPART>

执行操作

  1. 验证问题是否修复

成功消除镜像和volume占用的空间

使用docker安装open-webUI

  1. 使用国内源进行安装,如果使用clash代理下载容器非常非常慢,国内的很快,用南京大学的源
  • 除了使用docker安装外(Linux服务器首选),还能使用python安装或者anaconda进行安装
1
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.nju.edu.cn/open-webui/open-webui:main

安装容器

  1. 等待下载完成之后,在docker desktop直接点击容器即可打开web页面,需要等个30s左右再打开,否则未初始化完成会连接不上

open-webUI