news 2026/5/24 1:34:26

Docker部署YOLOv8训练+推理完整教程(含报错解决)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker部署YOLOv8训练+推理完整教程(含报错解决)

说明

1、本教程适配Windows10+/Ubuntu20.04/22.04,全程一键复制命令,无需配置Python、CUDA、PyTorch

2、使用Ultralytics官方GPU镜像,环境纯净、无版本冲突

3、包含:环境安装、容器部署、数据集制作、训练、推理、模型导出、全套报错解决方案

4、训练必须Nvidia独立显卡,CPU仅能推理,训练速度极慢不推荐

一、前置硬件&软件要求

1、硬件:Nvidia独立显卡(驱动版本≥515)、空闲硬盘≥20G、内存≥8G

2、软件:无预装依赖,仅需安装Docker

3、核心优势:容器隔离环境,一次部署永久使用,不会污染本地电脑环境

二、安装Docker环境

2.1 Windows系统安装Docker

1、下载Docker Desktop:https://www.docker.com/products/docker-desktop/

2、默认路径安装,安装完成重启电脑

3、打开PowerShell,输入以下命令验证安装成功:

docker --version

4、Docker设置开启GPU支持:Settings → Features → 勾选【Use the WSL 2 based engine】、【Enable GPU support】,重启Docker

2.2 Ubuntu系统安装Docker

复制全部命令一键执行:

sudo apt update sudo apt install docker.io -y sudo systemctl start docker sudo systemctl enable docker

2.3 安装Nvidia GPU容器支持(必装!!!)

Ubuntu系统一键安装:

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.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 sudo apt update sudo apt install -y nvidia-container-toolkit sudo systemctl restart docker

2.4 验证GPU环境是否正常

通用验证命令(Windows/Ubuntu通用):

docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi

输出显卡信息 = 环境正常

报错 = 显卡驱动过低/未开启GPU支持,查看文末排错方案

三、拉取YOLOv8官方镜像

官方镜像内置CUDA、PyTorch、YOLOv8全部依赖,一键拉取:

docker pull ultralytics/ultralytics:latest

四、创建本地工作目录(持久化数据)

作用:容器删除后,数据集、训练权重、结果依然保存在本地

4.1 Windows创建目录

手动新建文件夹:D:\yolo_workspace

内部新建三个子文件夹:datasets、runs、weights

4.2 Ubuntu一键创建目录

mkdir -p ~/yolo_workspace/datasets mkdir -p ~/yolo_workspace/runs mkdir -p ~/yolo_workspace/weights

五、启动YOLOv8容器(核心命令)

5.1 Windows启动命令(PowerShell执行)

docker run -it --gpus all ^ -v D:\yolo_workspace:/usr/src/ultralytics ^ -p 8080:8080 ^ ultralytics/ultralytics:latest

5.2 Ubuntu启动命令

docker run -it --gpus all \ -v ~/yolo_workspace:/usr/src/ultralytics \ -p 8080:8080 \ ultralytics/ultralytics:latest

出现root@xxx:/usr/src/ultralytics#即进入训练环境,部署完成

后续重新进入容器命令:docker start -ai 容器ID

六、环境测试(确保可正常运行)

6.1 测试推理

yolo predict model=yolov8n.pt source=bus.jpg

6.2 测试快速训练(5轮快速验证)

yolo train model=yolov8n.pt data=coco8.yaml epochs=5 imgsz=640

运行无报错、生成结果文件 = 环境完全正常

七、自定义数据集配置(标准YOLO格式)

7.1 固定数据集目录结构

将数据集放入:yolo_workspace/datasets/自定义文件夹名(示例my_dataset)

my_dataset/ ├── images/ │ ├── train/ # 训练集图片 │ └── val/ # 验证集图片 ├── labels/ │ ├── train/ # 训练集txt标签 │ └── val/ # 验证集txt标签 └── data.yaml # 数据集配置文件

7.2 编写data.yaml配置文件(直接复制修改)

path: /usr/src/ultralytics/datasets/my_dataset train: images/train val: images/val nc: 2 names: 0: cat 1: dog

修改说明:nc为类别总数,names对应自己的目标类别,其余内容无需改动

八、自定义数据集训练命令(小白通用)

yolo train \ model=yolov8n.pt \ data=datasets/my_datset/data.yaml \ epochs=100 \ imgsz=640 \ batch=8 \ device=0

参数解释

model:预训练权重(n/s/m/l/x,从小到大,速度递减、精度递增)

epochs:训练轮数,通用100-300轮

imgsz:推理尺寸,固定640即可

batch:批次大小,显存4G改4、2G改2

device:指定0号GPU训练

训练结果路径

本地:yolo_workspace/runs/train/exp(自动递增文件夹)

best.pt:最优模型权重(实际部署使用)

last.pt:最后一轮模型权重(继续训练使用)

九、模型推理、验证、导出命令

9.1 模型推理测试

yolo predict \ model=runs/train/exp/weights/best.pt \ source=datasets/my_dataset/images/val \ save=True

9.2 模型精度验证

yolo val model=runs/train/exp/weights/best.pt data=datasets/my_dataset/data.yaml

9.3 导出ONNX/TensorRT部署模型

# 导出ONNX yolo export model=runs/train/exp/weights/best.pt format=onnx # 导出TensorRT(高速推理) yolo export model=runs/train/exp/weights/best.pt format=engine

十、继续上次未完成的训练

yolo train model=runs/train/exp/weights/last.pt resume=True

原因:未开启GPU支持/显卡驱动版本过低

解决:更新Nvidia官方驱动≥515,Windows开启Docker GPU支持,重启Docker

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/24 1:33:11

从需求到交付:深度拆解企业级软件定制开发的标准化流程

一、 引言:数字化转型的“标准化”与“定制化”博弈(内容概要:简述当前企业在选购通用SaaS软件与定制软件时的痛点。指出通用软件往往“大而全但难用”,而定制开发的核心在于精准契合业务场景。)二、 定制开发的四大核…

作者头像 李华
网站建设 2026/5/24 1:33:06

数据标注中的权力博弈与主观性:从规则制定到模型偏见的全链路解析

1. 项目概述:当数据标注不再是“客观”的技术活“数据标注”,在很多人眼里,可能就是一个坐在电脑前,对着图片画框、打标签的“体力活”或“技术活”。它听起来中立、客观,是人工智能模型训练前一道标准化的工序。然而&…

作者头像 李华
网站建设 2026/5/24 1:31:03

Unity Android导出构建失败:BuildIl2CppTask错误根因与修复

1. 这不是Unity的错,是Il2Cpp编译链路在Windows上和Android Studio“互相不认识” 你刚在Unity里点下“Build & Run”,选中“Export Project”导出安卓工程,然后兴冲冲打开Android Studio——结果Gradle同步失败,控制台里一长…

作者头像 李华
网站建设 2026/5/24 1:30:05

机环交互会产生新形态的机器智能吗?

是的,机环交互(Machine-Environment Interaction, MEI)不仅会产生新形态的机器智能,而且它正是当前AI突破现有瓶颈、迈向更高级智能的必经之路。这种新形态的智能,不再是仅仅依赖人类投喂数据的“被动学习者”&#xf…

作者头像 李华