开始在 Docker 中使用 YOLOv5 🚀#
欢迎阅读 Ultralytics YOLOv5 Docker 快速入门指南!本教程将分步介绍如何在 Docker 容器中设置并运行 YOLOv5。使用 Docker 可以让你在隔离且一致的环境中运行 YOLOv5,从而简化不同系统之间的部署和依赖管理。这种方法利用容器化将应用程序及其依赖项打包在一起。
如需使用其他设置方法,请参阅我们的 Colab Notebook
、GCP Deep Learning VM 或 Amazon AWS 指南。有关将 Docker 与 Ultralytics 模型结合使用的概览,请参阅 Ultralytics Docker Quickstart Guide。
前置条件#
开始之前,请确保已安装以下组件:
- Docker:从 Docker 官方网站下载并安装 Docker。Docker 对创建和管理容器至关重要。
- NVIDIA 驱动程序(支持 GPU 所必需):请确保已安装 455.23 或更高版本的 NVIDIA 驱动程序。你可以从 NVIDIA 网站下载最新驱动程序。
- NVIDIA Container Toolkit(支持 GPU 所必需):此工具包允许 Docker 容器访问主机上的 NVIDIA GPU。请按照官方的 NVIDIA Container Toolkit 安装指南操作,获取详细说明。
设置 NVIDIA Container Toolkit(GPU 用户)#
首先,运行以下命令,验证 NVIDIA 驱动程序是否已正确安装:
nvidia-smi此命令应显示有关你的 GPU 以及已安装驱动程序版本的信息。
接下来,安装 NVIDIA Container Toolkit。以下命令通常适用于基于 Debian 的系统(如 Ubuntu)以及基于 RHEL 的系统(如 Fedora/CentOS),但请参阅上面链接的官方指南,获取适用于你的发行版的具体说明:
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更新软件包列表并安装 NVIDIA Container Toolkit:
sudo apt-get updatesudo apt-get install -y nvidia-container-toolkit使用 Docker 验证 CDI 设备#
运行 nvidia-ctk cdi list,确保 GPU CDI 设备可用(该工具包的 nvidia-cdi-refresh 服务会在 toolkit >= 1.18 时自动生成并维护规范):
nvidia-ctk cdi list你应看到类似 nvidia.com/gpu=0 和 nvidia.com/gpu=all 的条目。在 Linux 上,CDI 设备请求需要 Docker >= 28.2.0 和 NVIDIA Container Toolkit >= 1.18。旧版 --gpus all 标志在主机守护进程重新加载后可能会失去 GPU 访问权限,因此请升级较旧的 Linux 主机,并改用 --device。
步骤 1:拉取 YOLOv5 Docker 镜像#
Ultralytics 在 Docker Hub 上提供官方 YOLOv5 镜像。latest 标签跟踪最新的仓库提交,因此你始终可以获得最新版本。使用以下命令拉取镜像:
# Define the image name with tag
t=ultralytics/yolov5:latest
# Pull the latest YOLOv5 image from Docker Hub
sudo docker pull $t你可以在 Ultralytics YOLOv5 Docker Hub 仓库中浏览所有可用镜像。
步骤 2:运行 Docker 容器#
拉取镜像后,你可以将其作为容器运行。
仅使用 CPU#
如需仅使用 CPU 运行交互式容器实例,请使用 -it 标志。--ipc=host 标志允许共享主机 IPC 命名空间,这对于访问共享内存非常重要。
# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $t使用 GPU#
如需在容器中启用 GPU 访问,请使用 --device nvidia.com/gpu=... CDI 标志。这要求正确安装 NVIDIA Container Toolkit。
# Run with access to all available GPUs
sudo docker run -it --ipc=host --device nvidia.com/gpu=all $t
# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --ipc=host --device nvidia.com/gpu=2 --device nvidia.com/gpu=3 $t有关命令选项的更多详情,请参阅 Docker run 参考。
挂载本地目录#
如需在容器中使用本地文件(数据集、模型权重等),请使用 -v 标志,将主机目录挂载到容器中:
# Mount /path/on/host (your local machine) to /path/in/container (inside the container)
sudo docker run -it --ipc=host --device nvidia.com/gpu=all -v /path/on/host:/path/in/container $t将 /path/on/host 替换为计算机上的实际路径,并将 /path/in/container 替换为 Docker 容器内所需的路径(例如 /usr/src/datasets)。
步骤 3:在 Docker 容器中使用 YOLOv5 🚀#
现在你已进入正在运行的 YOLOv5 Docker 容器!在这里,你可以执行标准的 YOLOv5 命令,完成各种机器学习和深度学习任务,例如目标检测。
# Train a YOLOv5 model on your custom dataset (ensure data is mounted or downloaded)
python train.py --data your_dataset.yaml --weights yolov5s.pt --img 640 # Start training
# Validate the trained model's performance (Precision, Recall, mAP)
python val.py --weights path/to/your/best.pt --data your_dataset.yaml # Validate accuracy
# Run inference on images or videos using a trained model
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos # Perform detection
# Export the trained model to various formats like ONNX, CoreML, or TFLite for deployment
python export.py --weights yolov5s.pt --include onnx coreml tflite # Export model查看文档,详细了解不同模式的用法:
进一步了解精确率、召回率和 mAP 等评估指标。了解 ONNX、CoreML 和 TFLite 等不同导出格式,并探索各种模型部署选项。请务必有效管理你的模型权重。

你已成功在 Docker 容器中设置并运行 YOLOv5。