1.创建脚本文件
vim /usr/local/data docker.sh
#创建docker安装的执行脚本,一键完成部署
#!/bin/bash
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
apt update
#安装指定版本 这里我选择25.2版本,使用稍微靠后一点的版本,稳定性更好
apt-get install docker-ce=5:25.0.2-1~ubuntu.20.04~focal
apt-mark hold docker-ce docker-ce-cli
# docker 要使用gpu设备需要安装驱动
curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update
sudo apt-get install nvidia-container-runtime
#安装二进制包docker-compose
wget https://ghfast.top/https://github.com/docker/compose/releases/download/v2.27.3/docker-compose-linux-x86_64
chmod +x docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
mkdir /etc/docker/
#写入镜像加速配置
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com",
"https://func.ink"
]
}
EOF
systemctl daemon-reload
systemctl enable docker
systemctl start docker
systemctl status docker
1.1执行脚本
./docker.sh
#到创建脚本的目前执行这个部署脚本
看到docker的运行状态,代表目前docker已经成功部署
建议安装docker时在科学上网环境下安装科学上网
否则将出现各种报错
2.docker拉取镜像
# web前端服务
docker pull ghcr.io/open-webui/open-webui:main
# ollama服务
docker pull ollama/ollama:0.5.7
通过docker自带命令拉取openwebui和ollama服务,完成自动部署
3.编排文件
3.1创建网络
#创建网络
docker network create --subnet 172.20.0.0/16 ollama-net
3.2创建目录
通过mkdir批量创建两个目录
#创建目录
mkdir {ollamadeamon,ollamawebui}
在对应的文件夹创建执行的yaml文件,让docker能执行,且完成安装部署
cd /etc/docker/ollamademon/
vim ollamadeamon-docker-compose.yaml
version: "3.3"
services:
ollama:
image: ollama/ollama:0.5.7
container_name: ollama-deamon
hostname: ollama-deamon
restart: unless-stopped
ports:
- 11434:11434
networks:
- ollama-net
tty: true
volumes:
- ./data:/root/.ollama
deploy:
# 添加 GPU 资源配置
resources:
reservations:
devices:
- capabilities:
- gpu
environment:
# 可选:设置 CUDA 环境变量
- NVIDIA_VISIBLE_DEVICES=all # 使容器可以访问所有 GPU
- NVIDIA_DRIVER_CAPABILITIES=compute,utility # 启用计算和工具功能
networks:
ollama-net:
external: true
cd /etc/docker/ollamawebui/
vim ollamawebui-docker-compose.yaml
version: "3.3"
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: ollama-webui
hostname: ollama-webui
restart: unless-stopped
networks:
- ollama-net
ports:
- 3000:8080
extra_hosts:
- host.docker.internal:host-gateway
volumes:
- ./data:/app/backend/data
environment:
- ENABLE_OPENAI_API=False
- ENABLE_RAG_WEB_SEARCH=True
- RAG_WEB_SEARCH_ENGINE="duckduckgo"
- RAG_WEB_SEARCH_RESULT_COUNT=3
- RAG_WEB_SEARCH_CONCURRENT_REQUESTS=10
networks:
ollama-net:
external: true
!!!执行脚本时,出现显存报错,代表没有检测到显卡 ,如果只是小模型,可以将显卡那几段配置注释
4.启动容器
到对应的目录将文件执行
docker-compose up -d
安装成功并启动成功
docker ps
#查看目前容器中运行的镜像
5.拉取deepseek模型
目前已经通过docker拉取到ollama镜像,并且已经安装部署成功
下面要通过ollama容器对开源的deepseek模型进行拉取
如果不确定模型在ollama的名称可以直接访问官网进行,最好通过科学上网访问官网查找对应的名称
ollama run deepseek-r1:1.5b
ollama run deepseek-r1:7b
ollama run deepseek-r1:8b
ollama run deepseek-r1:14b
ollama run deepseek-r1:32b
ollama run deepseek-r1:70b
ollama run deepseek-r1:671b #满血版
5.1进入ollama镜像中
docker exec -it ollama-deamon bash #登录ollama镜像
ollama pull deepseek-r1:1.5b #拉取R1-1.5B模型
在ollama容器拉取模型时,一定要关闭科学上网,否则无法拉取
5.1.1启动模型
ollama run deepseek-r1:1.5b
看到对话框,就代表已经启动完成,目前可以进行交互了
6.配置openwebui前端
访问 http://localhost:3000,设置用户名和密码