服务器Ubuntu22.04系统 使用dcocker部署安装ollama和搭配open_webui使用
一、ubuntu和docker基本环境配置
1.更新包列表:
- 打开终端,输入以下命令:
sudo apt-get update
sudo apt upgrade
更新时间较长,请耐心等待
2. 安装docker依赖
sudo apt-get install ca-certificates curl gnupg lsb-release
3. 添加docker密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
4.添加阿里云docker软件源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
如果是arm架构,命令换成下面这个,否则第5步会出错
sudo add-apt-repository "deb [arch=arm64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
5.安装docker
apt-get install docker-ce docker-ce-cli containerd.i
6.安装完成docker测试
docker -v
7. docker配置国内镜像源
- 7.1 编辑配置文件
vi /etc/docker/daemon.json
按i进入编辑模式
加入以下内容:
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://docker.m.daocloud.io",
"https://ghcr.io",
"https://mirror.baidubce.com",
"https://docker.nju.edu.cn"
]
}
按ESC键退出编辑模式,接着输入:wq,保存并退出
- 7.2 重新加载docker
sudo systemctl daemon-reload
- 7.3 重启docker
sudo systemctl restart docker
2. 安装英伟达显卡驱动
2.1 使用wget在命令行下载驱动包
注意,这里是要根据自己的机器选择驱动版本进行安装,这里是选择的是aarch64架构的550.90.07驱动,其他的可以去英伟达官网自己找。官方高级驱动搜索 。注意,选择cuda的时候,要选择你要安装的版本(我这里是选择最新的12.4,除了12.4,还可以兼容12.4以下的。)
wget https://cn.download.nvidia.com/tesla/550.90.07/NVIDIA-Linux-aarch64-550.90.07.run
2.2 更新软件列表和安装必要软件、依赖
sudo apt-get update
sudo apt-get install g++
sudo apt-get install gcc
sudo apt-get install make
2.2 卸载原有驱动(如果执行nvidia-smi报错可以不用执行这一步)
sudo apt-get remove --purge nvidia*
使用vim修改配置文件
sudo vim /etc/modprobe.d/blacklist.conf
按i键进入编辑模式,在文件尾增加两行:
blacklist nouveau
options nouveau modeset=0
按esc键退出编辑模式,输入:wq保存并退出
更新文件
sudo update-initramfs –u
重启电脑:
sudo reboot
2.3 安装驱动
授予执行权限(记得将文件名换成自己的驱动文件)
sudo chmod 777 NVIDIA-Linux-aarch64-550.90.07.run
执行安装命令
sudo ./NVIDIA-Linux-aarch64-550.90.07
检测显卡驱动是否安装成功
nvidia-smi
出现以下界面则证明驱动安装成功(注意,Processes是我在执行的进程,如果你是新安装的,应该是空白的。)
2.4 安装CUDA
注意:这里选择安装的版本一定要等于或者低于你执行nvidia-smi命令后显示的CUDA Version那个版本,比如我是显示12.4,则我可以安装12.4或者是之前的版本。驱动与CUDA版本对应关系,可以看官网这里介绍,驱动版本与CUDA版本的对应表
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
输出accept开始安装
注意这里要按enter取消勾选第一个选项,因为之前已经安装了驱动
然后选择Install开始安装
sudo sh cuda_12.4.0_550.54.14_linux.run
2.5 环境变量配置
以vim方式打开配置文件
sudo vim ~/.bashrc
在文件尾中加入以下两行:
export PATH="/usr/local/cuda-12.4/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH"
更新环境变量
source ~/.bashrc
检测CUDA是否安装成功
nvcc -V
出现下面的信息则证明CUDA安装成功
3. 安装conda
3.1 软件下载
wget -c https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh
bash Anaconda3-2023.03-1-Linux-x86_64.sh
3.2 设置环境变量
vim /etc/profile
在末尾添加环境变量
export PATH="~/anaconda3/bin:$PATH"
vim ~/.bashrc
export PATH="~/anaconda3/bin:$PATH"
刷新环境变量
source /etc/profile
source ~/.bashrc
然后conda -V要是正常就安装成功了
conda -V
3.3 conda配置
配置清华镜像源
代码如下:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
设置搜索时显示通道地址
conda config --set show_channel_urls yes
配置pip 镜像源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
三、使用docker安装ollama
1. 使用docker拉取ollama镜像
docker pull ollama/ollama:latest
国内镜像
docker pull dhub.kubesre.xyz/ollama/ollama:latest
2.使用docker运行以下命令来启动 Ollama 容器
docker run -d --gpus=all --restart=always -v /home/docker/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
使ollama保持模型加载在内存(显存)中
- 参考文章
ollama如何保持模型加载在内存(显存)中或立即卸载 - 执行以下命令:
docker run -d --gpus=all -e OLLAMA_KEEP_ALIVE=-1 --restart=always -v /home/docker/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
-
错误信息
如果在启动容器的时候,提示:Error response from daemon: could not select device driver “” with capabilities: [[gpu]]
这是由于没有配置好docker运行环境导致的,执行安装容器运行环境(Ubuntu为例),参考docker 报错:不能选择设备驱动 could not select device driver 的解决方法
# 确保显卡驱动已安装
nvidia-smi
# 创建包仓库和GPG key
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# 更新包列表之后安装 nvidia-docker2 包(以及依赖)
sudo apt-get update
sudo apt-get install -y nvidia-docker2
# 安装完毕重启容器
sudo systemctl restart docker
3.使用ollama下载模型
- 这里示例下载阿里的通义千问
docker exec -it ollama ollama run qwen2
-
运行效果如图:
-
模型库
模型 | 参数数量 | 大小 | 下载方式 |
---|---|---|---|
Llama 2 | 7B | 3.8GB | docker exec -it ollama ollama run llama2 |
Mistral | 7B | 4.1GB | docker exec -it ollama ollama run mistral |
Dolphin Phi | 2.7B | 1.6GB | docker exec -it ollama ollama run dolphin-phi |
Phi-2 | 2.7B | 1.7GB | docker exec -it ollama ollama run phi |
Neural Chat | 7B | 4.1GB | docker exec -it ollama ollama run neural-chat |
Starling | 7B | 4.1GB | docker exec -it ollama ollama run starling-lm |
Code Llama | 7B | 3.8GB | docker exec -it ollama ollama run codellama |
Llama 2 Uncensored | 7B | 3.8GB | docker exec -it ollama ollama run llama2-uncensored |
Llama 2 | 13B | 7.3GB | docker exec -it ollama ollama run llama2:13b |
Llama 2 | 70B | 39GB | docker exec -it ollama ollama run llama2:70b |
Llama 3.1 | 8B | 4.7GB | docker exec -it ollama ollama run llama3.1:70 |
Orca Mini | 3B | 1.9GB | docker exec -it ollama ollama run orca-mini |
Vicuna | 7B | 3.8GB | docker exec -it ollama ollama run vicuna |
LLaVA | 7B | 4.5GB | docker exec -it ollama ollama run llava |
Gemma | 2B | 1.4GB | docker exec -it ollama ollama run gemma:2b |
Gemma | 7B | 4.8GB | docker exec -it ollama ollama run gemma:7b |
4.使用ollama下载模型
下载微调版本的,可以看这篇文章,[HuggingFace + Ollama + Llama 3.1:轻松搞定Llama 3.1中文微调版本安装](
四、使用docker安装open-webui
1. docker部署ollama web ui
main版本
docker run -d -p 30131:8080 --gpus all --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
cuda版本
docker run -d -p 30131:8080 --gpus all --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:cuda
- 安装成功后,可以在另一台计算机进行访问,如下:
2.注册账号
- 默认第一个账号是管理员
3.成功进入:
4. 聊天界面
参考来源:https://blog.csdn.net/weixin_62798503/article/details/140658151