【小白教程】本地部署VLM-R1模型(使用Docker)

引言

VLM-R1的GitHub
REC测试API
OVD测试API
如图所示①②,可以跳转测试。每天限时5min的使用。
在这里插入图片描述

一、安装 Docker

Docker

1.1 Docker Desktop

1.1.1 配置镜像加速器

通过Docker Desktop配置
设置——Docker Engine——右侧JSON中修改registry-mirrors字段

 "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.ccs.tencentyun.com",
    "https://mirrors.aliyun.com"
  ]

#或

"registry-mirrors": [
 
"https://docker.m.daocloud.io",
 
"https://noohub.ru",
 
"https://huecker.io",
 
"https://dockerhub.timeweb.cloud",
 
"https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com",
 
"https://5tqw56kt.mirror.aliyuncs.com",
 
"https://docker.1panel.live",
 
"http://mirrors.ustc.edu.cn/",
 
"http://mirror.azure.cn/",
 
"https://hub.rat.dev/",
 
"https://docker.ckyl.me/",
 
"https://docker.chenby.cn",
 
"https://docker.hpcloud.cloud",
 
"https://docker.m.daocloud.io"
 
]          

点击「Apply & Restart」应用配置并重启 Docker
请添加图片描述

1.1.2 【或】直接修改配置文件daemon.json

  1. Win+r直接搜
    %USERPROFILE%.docker\daemon.json

  2. 手动查找
    在这里插入图片描述
    修改完需要重启

  3. 验证

终端查看

docker info

二、部署步骤

2.1 使用别人配置好的镜像

2.1.1 创建容器

docker run -it --gpus all --shm-size=64g -v D:/vlm_r1:/data/zm --net host kevinchina/deeplearning:2.5.1-cuda12.4-cudnn9-devel-vlmr1 bash
#可能没有权限报错,再前面加个sudo
sudo docker run -it --gpus all --shm-size=64g -v /vlm_r1:/data/zm --net host kevinchina/deeplearning:2.5.1-cuda12.4-cudnn9-devel-vlmr1 bash
  • shm-size设置共享内存的大小为 64 GB。共享内存是 Linux 中用于进程间通信的一部分。对于一些需要大量共享内存的应用(例如深度学习模型的训练),增大该值可以避免因内存不足导致的错误。
  • bash进入容器后,启动一个 Bash shell,就像你在普通的 Linux 系统中操作一样。
  • -v D:/vlm_r1:/workspace这是一个卷挂载(Volume Mount)。它将主机上的 D:/vlm_r1 目录挂载到容器内的 /data/zm 目录。这样你可以在容器内访问 D:/vlm_r1 目录中的文件,并对其进行读写操作。
  • --net host让容器与主机共享网络。这样容器中的应用就可以直接使用主机的 IP 地址和端口,不需要进行端口映射。适用于需要与主机进行密切网络交互的场景。
  • bash在容器中启动一个 bash shell,允许你进入容器内进行交互操作。

2.1.2 进入容器后,可查看挂载的文件

cd /data/zm
ls

可以将当前用户添加到 Docker 组,就不用每次都sudo了

sudo usermod -aG docker $USER  #$USER 会自动替换为当前用户名):
  • 退出并重新登录: 修改用户组后,你需要退出当前会话并重新登录,或者重新启动系统,确保权限变更生效。

验证
重新登录后,可以通过以下命令验证用户是否已被成功添加到 Docker 组:如果你看到 docker 出现在输出中,说明当前用户已经具有运行 Docker 命令的权限。

groups

2.1.3 重新进入容器

如果不小心退出容器了
#查看容器 
docker ps -a #(还能看到已退出/已停止的容器)

#启动
docker start <container_id_or_name>

#进入
docker exec -it <container_id_or_name> bash
如果挂载目录错了,需要退出容器删除后,重新run

如果之前run过,删除后再次run会很快,因为有缓存

#退出容器
exit

#停止容器
dockers stop 容器名

#删除容器
docker rm 容器名	
#强制删除
docker rm -f 容器名
#然后重新开始run,见2.1

2.1.4 安装一些缺失的包,可运行test.py后检测

网络问题
【更新源】
  1. 更换软件源

在更改软件源之前,最好先备份当前的源文件:

cp /etc/apt/sources.list /etc/apt/sources.list.bak
  1. 编辑 sources.list 文件: 使用文本编辑器打开
vi /etc/apt/sources.list

更换为阿里云的镜像源: 将文件内容替换为以下内容:

deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
#网络不行,互相替换尝试
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
【设置代理】

可以设置或取消,尝试!!!
127.0.0.1:17890
在网络和Internet——高级网络设置——Internet选项——连接——局域网设置——代理服务器中可以看到

#####################################临时有效################################################
#Lunix
#设置
export http_proxy="http://127.0.0.1:17890"
export https_proxy="https://127.0.0.1:17890"
#取消
unset http_proxy
unset https_proxy

#Windows
#设置
set http_proxy=http://127.0.0.1:17890
set https_proxy=https://127.0.0.1:17890
#取消
set http_proxy=
set https_proxy=
#########################################################################################
###################################永久有效###############################################
#编辑
nano ~/.bashrc  #或者vi  ~/.bashrc
#添加
### 使用 Docker 部署 VLLM 本地模型 #### 安装依赖项和配置环境 为了确保服务器能够顺利运行基于 DockerVLLM 模型,需确认服务器已经安装了必要的软件包并进行了适当设置。这通常涉及更新操作系统、安装 NVIDIA CUDA 工具链以及验证硬件兼容性。 对于 Ubuntu 系统而言,可以执行如下命令来准备基础环境: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt install nvidia-driver-<version> cuda-toolkit -y nvidia-smi ``` 上述操作会安装最新的 Nvidia 显卡驱动程序及对应的 CUDA 开发工具集,并通过 `nvidia-smi` 命令测试 GPU 是否被正确识别[^2]。 #### 获取 vLLM Docker 镜像 接下来是从 Docker Hub 或其他可信源获取预构建好的 vLLM Docker 镜像文件。如果网络条件允许的话可以直接拉取官方镜像;否则可能需要提前下载好离线版本再上传至目标机器。 假设要使用的镜像是由社区维护的一个特定标签,则可以通过下面的方式加载它到本地仓库中: ```bash docker pull registry.hub.docker.com/vllm_project:vllm_version_tag ``` 这里替换 `<registry.hub.docker.com/vllm_project:vllm_version_tag>` 为实际可用的镜像地址及其版本号[^1]。 #### 启动容器实例化服务 完成以上准备工作之后就可以创建一个新的 Docker 容器用于承载 vLLM 应用了。建议指定挂载卷路径以便持久保存数据,同时开放必要端口供外部访问 API 接口。 以下是启动带参数选项的例子: ```bash docker run --gpus all \ -p host_port:container_port \ -v /path/to/local/model:/models \ --name=vllm_container_name \ -d vllm_image_name ``` 此脚本中的 `-p` 参数映射主机上的某个端口号到容器内部的服务监听位置;而 `-v` 则定义了一个双向绑定关系使得宿主机目录 `/path/to/local/model` 可以作为存储空间提供给容器内的应用程序读写使用。 #### 测试部署效果 最后一步就是检验整个流程是否顺利完成——即发送 HTTP 请求调用 RESTful APIs 来查询推理结果或者发起对话请求等互动行为。具体方法取决于所选框架所提供的接口文档说明。 例如,当一切正常运作时,应该可以从浏览器或其他客户端工具向 http://localhost:host_port 发起 GET/POST 方法的数据交换尝试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值