百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

本地linux虚拟机部署 ollama+deepseek+docker版openwebui

ahcoder 2025-03-05 13:04 14 浏览

windows 本地部署ollama+deepseek 可见前面文章.

linux 安装ollama

这里使用virtualbox 安装了rocky9.3
VirtualBox 是一款简单易用还免费的开源虚拟机虚拟机软件。

查看OS版本

cat /etc/redhat-release
Rocky Linux release 9.3 (Blue Onyx)

一健安装

curl -fsSL
https://ollama.com/install.sh | sh
自动化安装,但可能下载不了
注意:应该至少有8GB的可用内存来运行7B模型,16GB的可用内存来运行13B模型,以及32GB的内存来运行33B模型。

手动安装

https://github.com/ollama/ollama/blob/main/docs/linux.md
sudo rm -rf /usr/lib/ollama

1.8g左右
curl -L
https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz

启动ollam服务

Start Ollama:
ollama serve

In another terminal, verify that Ollama is running:

验证安装:

ollama -v
ollama version is 0.5.1

添加用户限配置

useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
usermod -a -G ollama $(whoami)

修改ollama的运行端口

对于每个环境变量,在[Service]部分下添加一行Environment.

Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=*"
Environment="OLLAMA_DEBUG=1"
Environment="OLLAMA_FLASH_ATTENTION=1"

Ollama 提供了多种环境变量以供配置:

OLLAMA_DEBUG:是否开启调试模式,默认为 false。
OLLAMA_FLASH_ATTENTION:是否闪烁注意力,默认为 true。
OLLAMA_HOST:0.0.0.0:11434 修改默认端口 11434 端口
OLLAMA_KEEP_ALIVE:设置模型加载到内存中保持 24 个小时(默认情况下,模型在卸载之前会在内存中保留 5 分钟)
OLLAMA_LLM_LIBRARY:LLM 库,默认为空。
OLLAMA_MAX_LOADED_MODELS:设置同时加载多个模型,默认为 1。
OLLAMA_MAX_QUEUE:最大队列数,默认为空。
OLLAMA_MAX_VRAM:最大虚拟内存,默认为空。
OLLAMA_MODELS:/mnt/data/.ollama/models 模型默认下载路径,默认为空。
OLLAMA_NOHISTORY:是否保存历史记录,默认为 false。
OLLAMA_NOPRUNE:是否启用剪枝,默认为 false。
OLLAMA_NUM_PARALLEL:设置用户并发请求,默认为 1。
OLLAMA_ORIGINS:允许的来源,默认为空。
OLLAMA_RUNNERS_DIR:运行器目录,默认为空。
OLLAMA_SCHED_SPREAD:调度分布,默认为空。
OLLAMA_TMPDIR:临时文件目录,默认为空。

Linux 的 tmp 目录设置为 noexec
如果你的系统将 Ollama 存储临时可执行文件的 tmp 目录设置为了 “noexec”,你可以通过设置 OLLAMA_TMPDIR 来指定一个用户可写的替代位置。例如 OLLAMA_TMPDIR=/usr/share/ollama/

配置为系统服务

设置为外部可以访问,端口为11434

cat </dev/null
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=*"
Environment="OLLAMA_DEBUG=1"
Environment="OLLAMA_FLASH_ATTENTION=1"
ExecStart=\$BINDIR/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=\$PATH"

[Install]
WantedBy=default.target
EOF

重新加载 systemd 并重启 Ollama

systemctl daemon-reload #重载服务
systemctl enable ollama #开机启动
systemctl start ollama #启动服务
systemctl restart ollama #重启服务
systemctl status ollama #查看服务状态

运行模型

一旦您下载了模型,就可以使用 Ollama 的 run 命令来运行它们。

拉取模型

ollama pull llama3.2:3b
ollama pull qwen2:1.5b
ollama pull deepseek-r1:1.5b
1.5b的运行速度比较快,也不卡,但比较笨,如果追求性能,可以尝试7b及以上的.

运行千问模型

ollama run qwen2:1.5b

>>> hello world
Hello! It's nice to meet you. Is there anything else you would like assistance with?
Use Ctrl + d or /bye to exit.
>>>

运行deepseek推理模型

ollama run deepseek-r1:7b

修改模型的存储目录

默认情况下,ollama模型的存储目录如下:

macOS: `~/.ollama/models` 
Linux: `/usr/share/ollama/.ollama/models`  
Windows: `C:\Users\\.ollama\models`

如需修改,vi
/etc/systemd/system/ollama.service
在[Service]下面加入一行新的Environment,新一行:

Environment="OLLAMA_MODELS=/path/to/ollama/models"

mkdir -p /data/ollama/
chown -R ollama:ollama /data/ollama
chmod 0777 /data/ollama

mv /usr/share/ollama/.ollama/models /data/ollama/

重启服务

systemctl daemon-reload
systemctl restart ollama.service

查看日志

journalctl -u ollama | grep -i 'prompt='
/set verbose #设置以查看token速度

测试

curl http://localhost:11434
Ollama is running

配制UI

支持windows的客户端工具

可以使用

  • Anything-LLM

  • Cherry Studio

  • Chatbox

  • LM Studio

浏览器插件

  • Chat with Ollama

  • Page Assist

第三方网站

chatboxai

Open-WebUI

Open WebUI是一个可扩展、功能丰富、用户友好的自托管 WebUI,旨在完全离线操作。它支持各种LLM运行程序,包括 Ollama 和 OpenAI 兼容的 API。Open WebUI 适配了 Ollama 接口,提供了 web 的方式来访问 Ollama API。

https://docs.openwebui.com/
支持多后端:LLaMA、GPT-NeoX 等,以及 CPU/GPU 等不同推理环境。
浏览器聊天界面:在局域网或本机通过网页即可与模型交互。


安装docker

yum install docker

rocky8 以上默认为podman,可以安装docker-ce

dnf install -y dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install -y docker-ce docker-ce-cli containerd.io

验证安装

这里安装的是Podman
docker version

Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Client:       Podman Engine
Version:      5.2.2
API Version:  5.2.2
Go Version:   go1.22.7 (Red Hat 1.22.7-2.el9_5)
Built:        Tue Nov 12 20:34:59 2024
OS/Arch:      linux/amd64

境像加速

当前没有魔法的情况下无法拉取到镜像,需要配制国内的镜像或者代理。

docker的加速

sudo tee /etc/docker/daemon.json <<-EOF
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn"
]
}

podman 的加速

vi /etc/containers/registries.conf
registry
prefix = "docker.io"
location = "docker.io"
mirror = [
{ location = "docker.nju.edu.cn" },
{ location = "docker.m.daocloud.io" }
]

重启docker查看一下

systemctl daemon-reload
systemctl restart docker
docker info

拉取 Open WebUI 镜像

通过以下命令,从 Open WebUI 官方 GitHub Container Registry (GHCR) 仓库拉取镜像

docker pull
ghcr.io/open-webui/open-webui:main
如果速度慢可以使用国内镜像再改名
docker pull
ghcr.nju.edu.cn/open-webui/open-webui:main
docker tag
ghcr.nju.edu.cn/open-webui/open-webui:main
ghcr.io/open-webui/open-webui:main

如有自已的代理加速魔法服务器

export https_proxy='192.168.244.1:8080'

先创建一个用于 Open WebUI 容器本地存储的本地目录

mkdir /opt/openwebui

通过以下命令启动容器, 映射本地3000 端口到容器内8080, 并挂载本地目录 /opt/openwebui 到容器的 /app/backend/data

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v /opt/openwebui:/app/backend/data --name openwebui ghcr.io/open-webui/open-webui:main

设容器为自动启动

docker update --restart always openwebui

手动启动

docker start openwebui

查看服务

netstat -lntp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      2303/conmon
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1183/sshd: /usr/sbi
tcp6       0      0 :::11434                :::*                    LISTEN      1589/ollama
tcp6       0      0 :::22                   :::*                    LISTEN      1183/sshd: /usr/sbi

如开启了防火墙,打开防火墙端口

firewall-cmd --get-default-zone
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --zone=public --add-port=11434/tcp --permanent

查看已经开启的防火墙端口

firewall-cmd --list-ports
firewall-cmd --get-services

重启防火墙修改才会生效

firewall-cmd --reload

虚拟机设置nat

在virtualbox虚拟机设置nat,映射宿主机127.0.0.1:3000端口到虚拟机 192.158.244.9:3000端口.
在浏览器访问http://127.0.0.1:3000 可以显示webui界面.


注册账号密码,创建管理员账号。

如果不习惯英文界面,可以设置成中文界面




现在,我们就可以用本地部署的 千问或deepseek-r1 模型进行聊天了。

相关推荐

Linux ntp时钟同步问题(linux ntp同步命令)

有时候,操作系统会报linux的ntp时钟错误。从时钟源同步时间超时。我查看了一下ntp的时钟源,发现执行ntpq-p显示超时。执行nslookup时钟服务器域名,发现可以正常解析。执行了n...

linux服务器同步利器Rsync全介绍(付脚本)

1、认识Rsync(remotesynchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文件...

如何使用Rsync同步两个网站服务器的内容

本头条号每天坚持更新原创干货技术文章,欢迎关注本头条号"Linux学习教程",公众号名称“Linux入门学习教程"。如需学习视频,请复制以下信息到手机浏览器或电脑浏览器上:zc...

Linux TB级小文件同步备份解决方案

在某些电子档案存储的业务系统下,按照业务场景要求,需要将产生的所有电子影像资料永久存储,并支持备份;因为“钞能力”等原因,一般备份存储只有一个节点(即:一个备份存储服务器);这样就要求研发工程师,不...

CentOS7下使用Lsyncd实现文件实时同步

Lsyncd简单介绍Lsyncd使用文件系统事件接口(inotify或fsevents)来监视本地文件和目录的更改。Lsyncd在几秒钟内将这些文件事件整理核对后,然后生成一个或多个进程以将更...

如何手动同步Linux系统时间并与互联网时间保持同步?

在Linux系统中,正确的时间同步对于许多任务都是至关重要的。一些关键应用程序可能需要准确的时间戳才能正常工作,而一些安全功能也需要确保所有服务器的时间都是准确的。NTP服务可以自动同步系统时间和互...

Linux服务器Rsync定时同步一键化配置指南

1、主从服务器同时安装rsyncopenssh-clientaptupdate&&aptinstall-yrsyncopenssh-client2、主服务器安装好后输入以下命令生成密钥...

Linux系统如何使用NTPDATE命令设置时间同步

简介:咱们在使用Linux系统的时候,常常能发现用了一阵子之后,Linux系统的时间就对不上了。已经知道的情况是,安装Linux的时候选的时区是Asia/Shanghai,可这系统运行了一...

开源的Linux文件同步工具有哪些?(linux 文件夹 同步)

Linux系统之间经常需要文件同步,一个好的文件同步工具省时省力,这里介绍几款开源的Linux文件同步工具1.rsync:rsync是Linux上一个功能强大的命令行工具,可以在不同的服务器之间同...

Linux 系统使用 rsync + inotify 实现文件实时同步

Linux系统使用rsync+inotify实现文件实时同步简介inotify监控文件的变化后通知rsync进行文件的同步#配置免密登录ssh-keygen-trsaca...

Linux 远程数据同步工具详解(linux远程同步命令)

一、简介1认识Rsync(remotesynchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之...

构建基于 Linux 的 NTP 时间同步集群与时间安全防护实战指南

一、为什么时间同步对系统如此重要?在分布式系统、数据库复制、消息队列、审计日志、安全认证(如Kerberos)、容器编排等场景中,系统时间一致性是保障正确性与安全性的基础。一旦服务器间时间漂移,可能...

每日Linux学习:同步备份工具 rsync

rsync是一个用于高效同步文件和目录的工具。它通过仅传输变化的部分(增量传输)来节省时间和带宽,支持本地同步、远程同步(通过SSH),还能保留文件原有权限、时间戳等属性。本文通过几个常用的实例来...

Chromixium OS 1.0发布 基于Ubuntu发行版

Chromixium项目宣布chromixiumOS1发布,一款基于Ubuntu的Linux分支,chromixiumOS试图重新打造一款外观和感觉与ChromeOS相似的完...

iOS8.0.X~iOS8.1完美越狱!盘古团队出品

【巴士速递·移动情报站】最新消息,iOS8.1越狱了!!此次越狱依旧是iOS7时代我国的大神盘古团队带来的,而该次越狱支持最新的iPhone6、iPhone6Plus、iPadAir2和iPad...