Ollama pull model without internet when run with docker

ui7jx7zq  于 2个月前  发布在  Docker
关注(0)|答案(1)|浏览(35)

当我在docker中运行Ollama run gemma:2b时,它会下载/root/.ollama/models中的blobs文件夹和manifests文件夹。在没有互联网的私有环境中,我复制了blobsmanifests文件夹,当我运行ollama run <name model>时,它无法正常工作。如何才能实现这个目标?

vmjh9lq9

vmjh9lq91#

Ollama缓存确实很难手动移动,因为每个模型的清单文件都实现了类似于符号链接的底层blob文件引用,这与操作系统级别的符号链接不同;移动文件或更改任何父目录的名称都会完全破坏缓存。
请注意,我的解决方案假设您的Docker安装将/root绑定到$HOME目录。如果您的虚拟存储配置不同,您可能需要稍作调整。
要实现您所要求的功能,您需要首先(在下载模型之前)在$HOME/.ollama/models创建自己的符号链接,指向您打算用于下载模型的目录。例如:

mkdir -p "$HOME/.ollama/sandbox/models"
ln -s -F "$HOME/.ollama/sandbox/models" "$HOME/.ollama/models"

Ollama仍然会在$HOME/.ollama/models查找模型(并且该符号链接指针需要持久化),但您可以想象使用这种技术与您的设置相结合;根据您正在使用的环境,可能需要进行一些调整。
或者,您可以将OLLAMA_MODELS环境变量指向一个不同的下载目录。同样,您不能移动缓存文件或更改父目录的名称,但您可以将其设置为与您的互联网访问环境共享访问权限的目录。

相关问题