> 技术文档 > 【小白教程】本地部署VLM-R1模型(使用Docker)_vllm docker

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


文章目录

  • 引言
  • 一、安装 Docker
    • 1.1 Docker Desktop
      • 1.1.1 配置镜像加速器
      • 1.1.2 【或】直接修改配置文件daemon.json
  • 二、部署步骤
    • 2.1 使用别人配置好的镜像
      • 2.1.1 创建容器
      • 2.1.2 进入容器后,可查看挂载的文件
      • 2.1.3 重新进入容器
        • 如果不小心退出容器了
        • 如果挂载目录错了,需要退出容器删除后,重新run
      • 2.1.4 安装一些缺失的包,可运行test.py后检测
        • 网络问题
          • 【更新源】
          • 【设置代理】
        • vi操作
      • 2.1.5 【问题】缺少的一些包
        • 【No module named \'cv2\'】
        • 【libGL.so.1: cannot open shared object file: No such file or directory】
        • 【CUDA 源连接失败】
        • 【libgthread-2.0.so.0: cannot open shared object file: No such file or directory】
      • 2.1.6 打包修改容器的镜像上传Docker Hub
          • commit和tag区分
    • 2.2 或者构造docker环境
  • 三、下载模型权重
    • 3.1 下载模型权重
    • 3.2 链接
    • 3.3 下载
      • 方法一:需要下载git-lfs
      • 方法二:使用 Hugging Face CLI
      • 方法三:手动一个一个文件下载
    • 3.4 文件目录展示
    • 3.5 运行推理脚本
      • test代码
      • 运行
        • 代码
          • test_ovd.py
          • test_rec.py
      • 结果

引言

VLM-R1的GitHub
REC测试API
OVD测试API
如图所示①②,可以跳转测试。每天限时5min的使用。
【小白教程】本地部署VLM-R1模型(使用Docker)_vllm docker

一、安装 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
【小白教程】本地部署VLM-R1模型(使用Docker)_vllm docker

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

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

  2. 手动查找
    【小白教程】本地部署VLM-R1模型(使用Docker)_vllm docker
    修改完需要重启

  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#可能没有权限报错,再前面加个sudosudo 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/zmls

可以将当前用户添加到 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 multiversedeb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiversedeb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiversedeb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse#网络不行,互相替换尝试deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiversedeb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiversedeb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiversedeb-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_proxyunset https_proxy#Windows#设置set http_proxy=http://127.0.0.1:17890set https_proxy=https://127.0.0.1:17890#取消set http_proxy=set https_proxy=############################################################################################################################永久有效################################################编辑nano ~/.bashrc #或者vi ~/.bashrc#添加