5,Docker运行最新ultralytics-main教程
目录
1,下载ultralytics-main项目
方法一:直接下载
方法二:git获取
2,按照好Dockers,参照我之前的教程
3,Docker配置GPU
3.1 查看自己的windows里是否安装有CUDA
3.2 更新 Docker Desktop 设置:
3.3 配置 Docker实现GPU加速:
3.4 验证 GPU 加速
4,构建docker镜像
4.1 docker文件夹下,不同dockerfile的说明
4.2 这里我们以Dockerfile为例,进行内部命令解析
修改点一:
修改点二:
修改点三:
4.3 构建镜像
4.4 运行容器并调用 GPU
方法一:进入交互式 Shell
方法二:直接运行
1,下载ultralytics-main项目
方法一:直接下载
方法二:git获取
https://github.com/ultralytics/ultralytics.git
2,按照好Dockers,参照我之前的教程
3,Windows11安装docker保姆级教程-CSDN博客
3,Docker配置GPU
3.1 查看自己的windows里是否安装有CUDA
nvidia-smi
- Docker Desktop 最新版(启用 WSL 2 后端)。
- 无需在 WSL 2 内单独安装 NVIDIA 驱动或 CUDA。
3.2 更新 Docker Desktop 设置:
- 打开 Docker 设置 → Resources → WSL Integration → 启用 Ubuntu 实例。
3.3 配置 Docker实现GPU加速:
进入 Docker 设置 → Docker Engine,添加以下配置:
{"experimental": true,"features": {"buildkit": true},"registry-mirrors": ["https://registry.docker-cn.com"] // 可选镜像加速
}
-
保存并重启 Docker。
3.4 验证 GPU 加速
docker run --rm -it --gpus=all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
4,构建docker镜像
4.1 docker文件夹下,不同dockerfile的说明
4.2 这里我们以Dockerfile为例,进行内部命令解析
基础镜像选择(核心项),作用:官方 PyTorch 镜像,预装 CUDA 12.6 和 cuDNN 9
功能解析:
PYTHONUNBUFFERED=1
:实时显示 Python 日志(容器调试必备)PIP_NO_CACHE_DIR=1
:禁用 pip 缓存 → 减小镜像体积MKL_THREADING_LAYER=GNU
:避免 PyTorch DDP 训练崩溃TF_CPP_MIN_LOG_LEVEL=3
:屏蔽 TensorFlow 冗余日志
- 功能:用于可视化渲染中的文字显示
- 问题:国内下载可能慢,非核心功能
- 必要包(保留):
gcc
:编译工具libgl1/libglib2.0-0
:OpenCV 依赖libpython3-dev
:Python 开发头文件
安全更新(可删除)
问题:基础镜像已安全,升级可能引入兼容性问题
工作目录设置(核心项)
- 作用:进入后续命令执行的工作路径
- 必须保留
项目复制(核心项)
- 作用:将本地 Ultralytics 代码复制到容器
- 必须保留
预训练模型下载(可删除)
修改点一:
为什么要注释这一行?因为我的项目是自己下载的,而不是通过git,所以不会产生
.git/config
文件,但Dockerfile
中试图用sed
修改它,从而导致失败。方法一:注释掉这一行
方法 2:用
git clone
拉项目(自动带.git/
),步骤如下:
cd F:\CEM
git clone https://github.com/ultralytics/ultralytics.git ultralytics-main
cd ultralytics-main
docker build -t ultralytics-gpu:latest -f docker/Dockerfile .
修改点二:
这里必须要换源,否则会下载不下来,
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -U pip setuptools wheel
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -e ".[export]"
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple albumentations faster-coco-eval onnxruntime-gpu tensorrt wandb
后续清理
修改点三:
这三个也要给注释掉不然下载不下来
1,将 YOLOv8 模型导出为 Edge TPU 格式,用于在 Google Coral Edge TPU 边缘计算设备上运行
2,功能:导出为 NCNN 格式,在移动端/嵌入式设备(安卓、树莓派等)高效部署
3,paddlepaddle安装,安装百度飞桨深度学习框架和转换工具
问题:
- 安装包非常大(约 1.5GB)
- 显著增加镜像体积
- 大多数用户不需要此兼容性
4.3 构建镜像
docker build -t ultralytics-gpu:latest -f docker/Dockerfile .
-t ultralytics-gpu:latest
:给你的镜像打个标签
-f docker/Dockerfile
:指定使用 GPU 版的 Dockerfile
可选:如果要推到 DockerHub 上,先登录
docker login
,然后替换镜像名为yourhubid/ultralytics:latest
并执行:
docker push yourhubid/ultralytics:latest
结果:
4.4 运行容器并调用 GPU
方法一:进入交互式 Shell
docker run --rm -it --gpus all -v F:\CEM\ultralytics-main:/ultralytics -w /ultralytics ultralytics-gpu:latest bash
进入容器后,目录下已有代码和依赖,可直接跑训练/推理。也就是跟普通命令行运行代码一样 : python predict.py
也就是相当于打开命令行,并cd 到根目录下
在这里面也可以看看ubuntu环境下是否调用了主机的显卡:
方法二:直接运行
docker run --rm --gpus all -v F:\CEM\ultralytics-main:/ultralytics ultralytics-gpu:latest python my_predict.py