ubuntu 24.04 服务器系统通过docker配置ollma和webui的教程

一、更新和升级软件包

# 登录远程主机(powershell):
ssh kaixinit@10.0.0.30
# 进入 root shell
sudo -i
# 更新软件包列表
apt -y update
# 升级所有已安装的软件包
apt -y upgrade
# 重启系统
reboot

二、开始安装NVIDIA驱动

# 进入 root shell
sudo -i
# 下载并安装 CUDA Keyring(负责验证 NVIDIA APT 源)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
dpkg -i cuda-keyring_1.1-1_all.deb
# 更新软件包索引
apt-get update
# 安装 NVIDIA 驱动
apt-get install -y nvidia-open
# 安装 CUDA Toolkit 13.0(自动拉取 compat 包)
apt-get -y install cuda-toolkit-13-0
# 重启系统
reboot

三、安装NVIDIA Container Toolkit

# 进入 root shell
sudo -i
# 添加 NVIDIA Container Toolkit 的 GPG key 并创建仓库列表
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/stable/deb/nvidia-container-toolkit.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
# 需要使用 “experimental” 版(例如容器化实验功能)
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
# 更新软件包索引
apt-get update
# 安装的 NVIDIA Container Toolkit 版本
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
  sudo apt-get install -y \
      nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}

四、安装docker

# 卸载旧的 Docker 相关包, 若包不存在也不报错
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
# 更新软件包索引
apt-get update
# 安装必需的依赖uh那劲
apt-get install ca-certificates curl gnupg
# 设置 key 文件权限,创建 keyrings 目录并导入 Docker GPG key,添加 Docker 官方 APT 源(这里使用 Nju 镜像),输入 Y 确认
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirror.nju.edu.cn/docker-ce/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新索引并安装 Docker‑CE,输入 Y 确认
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 启动docker
systemctl start  docker

五、docker安装Open‑WebUI + Ollama,本地IP:3000 端口访问

docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.nju.edu.cn/open-webui/open-webui:ollama

六、docker拉取ai模型

# 进入 root shell
sudo -i
# 查看正在运行的 Docker 容器,查到CONTAINER ID 或 NAME
docker  ps
# 进入该容器
docker exec -it ID  bash
# 使用 Ollama 拉取 GPT‑OSS 20B 模型(支持断点续传)
ollama pull gpt-oss:20b

七、如何获取模型文件地址

# 进入 root shell
sudo -i
#查看名为 ollama 的 Docker 卷的详细信息
docker volume inspect ollama
# 输出结果如下:
[
{
"CreatedAt": "2025-10-20T15:12:24Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/ollama/_data",
"Name": "ollama",
"Options": null,
"Scope": "local"
}
]
# 通过查询获取到存储路径在/var/lib/docker/volumes/ollama/_data,cd到该目录
cd /var/lib/docker/volumes/ollama/_data
# 查看目录文件
ls -a
# 输出结果如下:
id_ed3319 id_ed33319.pub models
# 通过以上输出结果models就是模型文件的存储目录
# 通过进一步查询下级目录,cd到该目录如下:
/var/lib/docker/volumes/ollama/_data/models/blobs
# 查看目录文件,得到模型的下载存储路径
ls

普通账户登录没有容器下载权限,需要切换root用户设置如下:

#以下操作在普通用户下,不要使用sudo -i切换
#如果没有权限,先启用root账户
# 安装nano编辑
sudo apt install  nano -y
# 编辑sshd_config文件
sudo nano /etc/ssh/sshd_config
# 在ssh/sshd_config添加在最后一行,ctrl+o保存,ctrl+x退出
PermitRootLogin yes
#重启ssh
sudo systemctl restart openssh-server
# 设置root密码,输入2次密码完成root账户设置
sudo passwd root
# 重启生效
sudo reboot

八、将open-webui镜像打包和ai模型文件下载到本地目录

# 在D盘目录创建ollama文件夹
mkdir D:\ollama
# 查询容器名称
docker images
# 打包容器
docker save -o open-webui_backup.tar ghcr.nju.edu.cn/open-webui/open-webui
# 下载容器到D盘ollama目录
scp -r root@10.0.0.30:/root/open-webui_backup.tar D:\ollama
# 下载模型文件到D盘ollama目录下
scp -r root@10.0.0.30:/var/lib/docker/volumes/ollama/_data/models/ D:\ollama

九、下载本地的open-webui镜像和ai模型恢复到dokcer

# 将镜像文件上传到root目录
scp -r D:\ollama\open-webui_backup.tar root@10.0.0.30:/root
# 从tar文件恢复镜像
docker load -i open-webui_backup.tar
# 输出结果如下:
Loaded image: ghcr.nju.edu.cn/open-webui/open-webui:ollama
# 查看镜像
docker  images
# 输出结果如下:
REPOSITORY                              TAG       IMAGE ID       CREATED        SIZE
ghcr.nju.edu.cn/open-webui/open-webui   ollama    8a125869ea18   27 hours ago   7.7GB
# 创建容器
docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.nju.edu.cn/open-webui/open-webui:ollama
# 输出结果如下:
f236cf99f9b5869c8ea37258d9b3a3ddb8f1d568c63aded72a352929477b0a66
# 查看是否运行
docker images
# 输出结果如下:
REPOSITORY                              TAG       IMAGE ID       CREATED        SIZE
ghcr.nju.edu.cn/open-webui/open-webui   ollama    8a125869ea18   27 hours ago   7.7GB
docker ps -a
# 输出结果如下:
CONTAINER ID   IMAGE                                          COMMAND           CREATED              STATUS                                 PORTS                                         NAMES
8a125869ea18   ghcr.nju.edu.cn/open-webui/open-webui:ollama   "bash start.sh"   About a minute ago   Up About a minute (health: starting)   0.0.0.0:3000->8080/tcp, [::]:3000->8080/tcp   open-webui
# 继续恢复ai模型文件,恢复完成后就可以看到模型文件了。
scp -r D:\ollama\models root@10.0.0.30:/var/lib/docker/volumes/ollama/_data/

十、docker针对容器和模型查看删除的常用命令

# 查看正在运行的 Docker 容器,查到CONTAINER ID 或 NAME
docker ps -a
# 停止容器
docker stop ID
# 输出结果如下:
ID名称
# 删除容器
docker rm ID
# 输出结果如下:
ID名称
# 继续查看,没有容器说明删除成功
docker ps -a
# 输出结果如下:
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
# 查看docker卷名
docker volume ls
# 输出结果如下:
DRIVER    VOLUME NAME
local     ollama
local     open-webui
# 删除ollama和open-webui目录
docker volume rm ollama
# 输出结果如下:
ollama
docker volume rm open-webui
# 输出结果如下:
open-webui
# 继续查看,没有ollama和open-webui目录说明删除成功
docker volume ls
# 输出结果如下:
DRIVER    VOLUME NAME

第十一、免登陆方式设置docker安装Open‑WebUI + Ollama,访问本地IP:3000

# 进入 root shell
ssh root@10.0.0.30
# 查看正在运行的 Docker 容器,查到CONTAINER ID 或 NAME
docker ps -a
# 停止容器
docker stop ID
# 输出结果如下:
ID名称
# 删除容器
docker rm ID
# 输出结果如下:
ID名称
# 查看docker卷名
docker volume ls
# 删除open-webui目录,等于初始化
docker volume rm open-webui
# 输出结果如下:
open-webui
# docker安装Open‑WebUI + Ollama,免登陆方式访问本地IP:3000
docker run -d -p 3000:8080 -e WEBUI_AUTH=False --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.nju.edu.cn/open-webui/open-webui:ollama

参考文章:
英伟达的驱动安装教程 :https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/#ubuntu
英伟达的驱动安装教程https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
cuda-toolkit 安装教程 https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=24.04&target_type=deb_network
docker安装教程:https://help.mirror.nju.edu.cn/docker-ce/?mirror=NJU

原创文章,作者:开心电脑网,如若转载,请注明出处。

(1)
上一篇 2025年10月20日
下一篇 2025年10月21日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注