【Docker】ollama初试deepseek

技巧分享 · 3 天前 · 393 人浏览

AI摘要

本文介绍了如何使用ollama和docker部署deepseek模型。作者首先安装了docker和ollama,然后进入容器安装模型。在模型下载过程中,作者发现下载速度会逐渐变慢,于是通过编写脚本实现模型的高速下载。最终,作者成功运行了deepseek模型,并分享了运行效果。

此内容根据文章生成,不代表个人观点,仅用于文章内容的解释与总结

随着deepseek的大火,dp模型的开源导致越来越多的人投身AI,并进行本地化部署。事实上,之前我在学习docker时,曾尝试过基于docker部署本地化模型,利用ollama部署的阿里云模型qwen2:0.5b具体部署过程可以参考我csdn上的博文:

玩转Docker:Lsky pro图床+私有化部署大模型(Ollama+Openwebui)

所以,根据以往的经验,如今来尝试deepseek模型的部署,应该也算不上什么难事。deepseek-r1的模型类型及部署要求如下:

R1满血版不敢想,但是太低的也不想考虑,起码部署个中等的吧,所以我首先考虑的是14b和32b。当然,这里的部署并不是说就是拿来用,主要是想体验下部署的过程,更多的是学习和了解。因此最近一直在留意有没有高内存的测试服务器。但是大多数都是8g以下的一个月几百上千。我只是想学习学习~不是真的要买啊。就没有免费试用或者便宜点的吗?

终于,机缘巧合下出现了契机。一元/天试用尝鲜版:

image.png

一天就一天吧,都这个配置了,要啥自行车啊。开搞!

1.安装docker及ollama

docker安装不用说了,主要就是基于docker安装ollama。

###docker下载ollama部署
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama --restart always ollama/ollama
 
##使用docker部署webUi页面,${inner_ip}替换为你的本地ip
docker run -d -p 3000:8080 -e 
OLLAMA_BASE_URL=http://${inner_ip}:11434 -v open-webui:/app/backend/data --name 
open-webui --restart always ghcr.nju.edu.cn/open-webui/open-webui:main

在下载ollama可能会出现找不到镜像的情况,所以这里需要设置apt镜像,进入daemon.json文件配置镜像源,没有就创建。

vi /etc/docker/daemon.json

然后使用 systemctl restart docker命令重启Docker即可。然后使用docker info命令查看镜像仓库信息,如果出现你所配置的源地址,就说明成功了。

{
  "registry-mirrors": [
    "https://2cc2e98fbd5b4ca482a3faf3884425e2.mirror.swr.myhuaweicloud.com",
    "https://docker.anyhub.us.kg",
    "https://dockerhub.jobcher.com",
    "https://dockerhub.icu"
  ]
}

2.进入容器安装模型

在安装ollama之后就可以通过 http:your_ip:3000 进行访问了。但是这个时候还没有模型。所以需要给ollama安装你想要的模型

终端输入:docker exec -it  <container-id> /bin/bash     

container-id为ollama容器id,进入到容器内。后面可输入以下命令进行对应操作:

###    安装模型
ollama pull qwen2:0.5b
 
###    启动模型
ollama run qwen2:0.5b
 
###    列出所有安装的模型
ollama list
 
###    移除模型,NAME模型名称
ollama rm <NAME>

因为这里我们是想利用ollama来部署deepseek。所以可选模型就是:deepseek-r1:32b  deepseek-r1:14b   deepseek-r1:8b 等等  

3.模型下载|中断|网速慢|问题解决

在下载模型过程中,会发现一个有意思的事,刚开始会比较快,后面随着时间的流逝下载速度会越来愈慢。

我刚开始是选择ollama push deepseek-r1:32b ,眼睁睁的看着它从开始的下载完要3小时到8小时。我放弃了...

然后是  ollama push deepseek-r1:14b 2小时到4小时,果断放弃

最后是  ollama push deepseek-r1:8b  2小时左右波动

后面经过查询,发现一个有意思的解决办法。

1.通过Ctrl+C组合键中断下载之后,再次运行ollama run命令,发现刚开始速度快,后面慢下来了。

2.重复使用该操作,实现模型高速下载,通过脚本自动循环实现该操作。

于是,有意思的事情开始了~~

1739780342701688.png

linux循环下载脚本bash:

#!/bin/bash
 
while true; do
    # 检查模型是否已下载完成
    modelExists=$(ollama list | grep "deepseek-r1:8b")
 
    if [ -n "$modelExists" ]; then
        echo "模型已下载完成!"
        break
    fi
 
    # 启动ollama进程并记录
    echo "开始下载模型..."
    ollama run deepseek-r1:8b &  # 在后台启动进程
    processId=$!  # 获取最近启动的后台进程的PID
 
    # 等待60秒
    sleep 60
 
    # 尝试终止进程
    if kill -0 $processId 2>/dev/null; then
        kill -9 $processId  # 强制终止进程
        echo "已中断本次下载,准备重新尝试..."
    else
        echo "进程已结束,无需中断"
    fi
done

window循环下载脚本:

# 引入 Windows Forms 命名空间
Add-Type -AssemblyName Microsoft.VisualBasic
Add-Type -AssemblyName System.Windows.Forms
# 弹出输入框,获取用户输入的模型名称
$modelName = [Microsoft.VisualBasic.Interaction]::InputBox(
"请输入要下载的模型名称(例如:deepseek-r1:32b):",
"模型名称输入",
"deepseek-r1:32b" # 默认值
)
if ([string]::IsNullOrWhiteSpace($modelName)) {
Write-Host "未输入有效的模型名称,脚本已退出。"
exit
}
while ($true) {
# 检查模型是否已下载完成
$modelExists = ollama list | Select-String $modelName
if ($modelExists) {
Write-Host "模型已下载完成!"
break
}
# 启动ollama进程并记录
Write-Host "开始下载模型..."
$process = Start-Process -FilePath "ollama" -ArgumentList "run", $modelName -PassThru -NoNewWindow
# 等待60秒
Start-Sleep -Seconds 60
# 尝试终止进程
try {
Stop-Process -Id $process.Id -Force -ErrorAction Stop
Write-Host "已中断本次下载,准备重新尝试..."
}
catch {
Write-Host "进程已结束,无需中断。"
}
}

有点不当人,但出乎意料的好用。8b的在运行时发现cpu都快拉满了,看来还是我想简单的。14b及以上的应该需要更高的配置才行。不过最后也是成功的运行出来了。效果如下:

image.png


Docker
验证码:
  1. 沉沦 前天

    感觉有需要的企业部署一个还行,个人部署还是对硬件要求太高。

  2. obaby 前天

    这配置要求,300 g。
    部署完也不知道啥样的

    1. 流情 (作者)  前天
      @obaby

      有300G干啥不好,配这玩意做啥。免费的都够用了

  3. 刘郎 前天

    一次部署一直爽 可部署好折腾好以后又要吃灰一阵子了 然后看了其他好玩的项目 又跑去研究其他的了

    1. 流情 (作者)  前天
      @刘郎

      我这是单纯练手的,没必要用自部的,网上开源的那么多

  4. Vind 3 天前

    我并没有用 AI 做很多活,可能更多就是代替传统搜索,直接问 ai,看它的总结。
    恰好今天在 B 站看见一个说咱们国内很多人用ollama 搭建 DeepSeek,都不注重网络安全,甚至还用的 http 明文传数据。还有些网站专门找这种有明显漏洞的ollama 服务。
    这个要注意啊!

    1. 流情 (作者)  前天
      @Vind

      这个我倒没关注,反正是测试用的,无所谓

  5. 赞,当时发现了ctrl+c中断重新下载可以速度回来,但是没有想到脚本来弄0.0

    1. 流情 (作者)  前天
      @小新笔记坊

      办法总比困难多

Theme: Jasmine | RSS订阅 | 网站地图