Hướng dẫn khởi động nhanh Docker cho Ultralytics
Hướng dẫn này đóng vai trò là phần giới thiệu toàn diện về cách thiết lập môi trường Docker cho bạn Ultralytics dự án. Docker là một nền tảng để phát triển, vận chuyển và chạy các ứng dụng trong các container. Nó đặc biệt có lợi để đảm bảo rằng phần mềm sẽ luôn chạy giống nhau, bất kể nó được triển khai ở đâu. Để biết thêm chi tiết, hãy truy cập Ultralytics Kho lưu trữ Docker trên Docker Hub .
Những gì bạn sẽ học được
- Thiết lập Docker với NVIDIA ủng hộ
- Cài đặt Ultralytics Hình ảnh Docker
- Đang chạy Ultralytics trong một container Docker với CPU hoặc GPU ủng hộ
- Sử dụng Display Server với Docker để Hiển thị Ultralytics Kết quả phát hiện
- Gắn các thư mục cục bộ vào container
Điều kiện tiên quyết
- Đảm bảo Docker được cài đặt trên hệ thống của bạn. Nếu không, bạn có thể tải xuống và cài đặt từ trang web của Docker .
- Đảm bảo rằng hệ thống của bạn có NVIDIA GPU Và NVIDIA Trình điều khiển đã được cài đặt.
Thiết lập Docker với NVIDIA Ủng hộ
Đầu tiên, hãy xác minh rằng NVIDIA trình điều khiển được cài đặt đúng cách bằng cách chạy:
Cài đặt NVIDIA Thời gian chạy Docker
Bây giờ, chúng ta hãy cài đặt NVIDIA Thời gian chạy Docker để kích hoạt GPU hỗ trợ trong các container Docker:
# Add NVIDIA package repositories
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(lsb_release -cs)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
# Install NVIDIA Docker runtime
sudo apt-get update
sudo apt-get install -y nvidia-docker2
# Restart Docker service to apply changes
sudo systemctl restart docker
Xác minh NVIDIA Thời gian chạy với Docker
Chạy docker info | grep -i runtime
để đảm bảo rằng nvidia
xuất hiện trong danh sách thời gian chạy:
Cài đặt Ultralytics Hình ảnh Docker
Ultralytics cung cấp một số hình ảnh Docker được tối ưu hóa cho nhiều nền tảng và trường hợp sử dụng khác nhau:
- Tệp Docker: GPU hình ảnh lý tưởng cho việc đào tạo.
- Dockerfile-arm64: Dành cho kiến trúc ARM64, phù hợp với các thiết bị như Raspberry Pi .
- Dockerfile- cpu : CPU -phiên bản duy nhất để suy luận và không- GPU môi trường.
- Dockerfile-jetson: Được tối ưu hóa cho NVIDIA Thiết bị Jetson.
- Dockerfile- python : Tối thiểu Python môi trường cho các ứng dụng nhẹ.
- Dockerfile-conda: Bao gồm Miniconda3 và Ultralytics gói được cài đặt thông qua Conda.
Để kéo hình ảnh mới nhất:
# Set image name as a variable
t=ultralytics/ultralytics:latest
# Pull the latest Ultralytics image from Docker Hub
sudo docker pull $t
Đang chạy Ultralytics trong Docker Container
Sau đây là cách thực hiện Ultralytics Bộ chứa Docker:
Chỉ sử dụng CPU
Sử dụng GPU
# Run with all GPUs
sudo docker run -it --ipc=host --gpus all $t
# Run specifying which GPUs to use
sudo docker run -it --ipc=host --gpus '"device=2,3"' $t
Các -it
cờ gán một pseudo-TTY và giữ stdin mở, cho phép bạn tương tác với container. --ipc=host
cờ cho phép chia sẻ không gian tên IPC của máy chủ, điều cần thiết để chia sẻ bộ nhớ giữa các quy trình. --gpus
cờ cho phép vùng chứa truy cập GPU của máy chủ.
Đang chạy Ultralytics trong Docker Container
Sau đây là cách thực hiện Ultralytics Bộ chứa Docker:
Chỉ sử dụng CPU
Sử dụng GPU
# Run with all GPUs
sudo docker run -it --ipc=host --gpus all $t
# Run specifying which GPUs to use
sudo docker run -it --ipc=host --gpus '"device=2,3"' $t
Các -it
cờ gán một pseudo-TTY và giữ stdin mở, cho phép bạn tương tác với container. --ipc=host
cờ cho phép chia sẻ không gian tên IPC của máy chủ, điều cần thiết để chia sẻ bộ nhớ giữa các quy trình. --gpus
cờ cho phép vùng chứa truy cập GPU của máy chủ.
Lưu ý về khả năng truy cập tệp
Để làm việc với các tệp trên máy cục bộ của bạn trong vùng chứa, bạn có thể sử dụng ổ đĩa Docker:
# Mount a local directory into the container
sudo docker run -it --ipc=host --gpus all -v /path/on/host:/path/in/container $t
Thay thế /path/on/host
với đường dẫn thư mục trên máy cục bộ của bạn và /path/in/container
với đường dẫn mong muốn bên trong vùng chứa Docker.
Chạy các ứng dụng giao diện người dùng đồ họa (GUI) trong Docker Container
Thử nghiệm cao - Người dùng chịu mọi rủi ro
Các hướng dẫn sau đây là thử nghiệm. Chia sẻ ổ cắm X11 với vùng chứa Docker có thể gây ra rủi ro bảo mật. Do đó, bạn chỉ nên thử nghiệm giải pháp này trong môi trường được kiểm soát. Để biết thêm thông tin, hãy tham khảo các tài nguyên này về cách sử dụng xhost
(1) (2).
Docker chủ yếu được sử dụng để chứa các ứng dụng nền và CLI chương trình, nhưng nó cũng có thể chạy các chương trình đồ họa. Trong thế giới Linux, hai máy chủ đồ họa chính xử lý hiển thị đồ họa: X11 (còn được gọi là Hệ thống X Window) và Wayland . Trước khi bắt đầu, điều cần thiết là xác định máy chủ đồ họa nào bạn hiện đang sử dụng. Chạy lệnh này để tìm hiểu:
Việc thiết lập và cấu hình máy chủ hiển thị X11 hoặc Wayland nằm ngoài phạm vi của hướng dẫn này. Nếu lệnh trên không trả về kết quả nào, thì bạn sẽ cần bắt đầu bằng cách làm cho một trong hai máy chủ hoạt động cho hệ thống của mình trước khi tiếp tục.
Chạy Docker Container với GUI
Ví dụ
Sử dụng GPU
If you're using [GPUs](#using-gpus), you can add the `--gpus all` flag to the command.
Nếu bạn đang sử dụng X11, bạn có thể chạy lệnh sau để cho phép vùng chứa Docker truy cập vào ổ cắm X11:
xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v ~/.Xauthority:/root/.Xauthority \
-it --ipc=host $t
Lệnh này thiết lập DISPLAY
biến môi trường vào màn hình của máy chủ, gắn ổ cắm X11 và ánh xạ .Xauthority
tập tin vào container. xhost +local:docker
lệnh cho phép vùng chứa Docker truy cập vào máy chủ X11.
Đối với Wayland, hãy sử dụng lệnh sau:
xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
-v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
--net=host -it --ipc=host $t
Lệnh này thiết lập DISPLAY
biến môi trường vào màn hình của máy chủ, gắn ổ cắm Wayland và cho phép vùng chứa Docker truy cập vào máy chủ Wayland.
Sử dụng Docker với GUI
Bây giờ bạn có thể hiển thị các ứng dụng đồ họa bên trong vùng chứa Docker của mình. Ví dụ, bạn có thể chạy lệnh CLI sau để trực quan hóa các dự đoán từ mô hình YOLO11 :
Kiểm tra
Một cách đơn giản để xác thực rằng nhóm Docker có quyền truy cập vào máy chủ X11 là chạy một container với chương trình GUI như xclock
hoặc xeyes
. Ngoài ra, bạn cũng có thể cài đặt các chương trình này trong Ultralytics Docker container để kiểm tra quyền truy cập vào máy chủ X11 của máy chủ hiển thị GNU-Linux của bạn. Nếu bạn gặp bất kỳ sự cố nào, hãy cân nhắc đặt biến môi trường -e QT_DEBUG_PLUGINS=1
. Thiết lập biến môi trường này cho phép xuất thông tin gỡ lỗi, hỗ trợ quá trình khắc phục sự cố.
Khi hoàn thành với Docker GUI
Thu hồi quyền truy cập
Trong cả hai trường hợp, đừng quên thu hồi quyền truy cập khỏi nhóm Docker khi bạn hoàn tất.
Bạn muốn xem kết quả hình ảnh trực tiếp trong Terminal?
Tham khảo hướng dẫn sau đây về cách xem kết quả hình ảnh bằng thiết bị đầu cuối
Xin chúc mừng! Bây giờ bạn đã thiết lập để sử dụng Ultralytics với Docker và sẵn sàng tận dụng các khả năng mạnh mẽ của nó. Để biết các phương pháp cài đặt thay thế, hãy thoải mái khám phá tài liệu hướng dẫn khởi động nhanh Ultralytics .
CÂU HỎI THƯỜNG GẶP
Làm thế nào để tôi thiết lập Ultralytics với Docker?
Để thiết lập Ultralytics với Docker, trước tiên hãy đảm bảo Docker được cài đặt trên hệ thống của bạn. Nếu bạn có NVIDIA GPU , cài đặt NVIDIA Thời gian chạy Docker để kích hoạt GPU hỗ trợ. Sau đó, kéo mới nhất Ultralytics Hình ảnh Docker từ Docker Hub bằng lệnh sau:
Để biết các bước chi tiết, hãy tham khảo Hướng dẫn bắt đầu nhanh Docker của chúng tôi.
Lợi ích của việc sử dụng là gì? Ultralytics Hình ảnh Docker dành cho các dự án học máy ?
Sử dụng Ultralytics Docker images đảm bảo một môi trường nhất quán trên các máy khác nhau, sao chép cùng một phần mềm và các phụ thuộc. Điều này đặc biệt hữu ích cho việc cộng tác giữa các nhóm, chạy các mô hình trên nhiều phần cứng khác nhau và duy trì khả năng tái tạo. Đối với GPU - đào tạo dựa trên, Ultralytics cung cấp các hình ảnh Docker được tối ưu hóa như Dockerfile
cho chung GPU sử dụng và Dockerfile-jetson
vì NVIDIA Thiết bị Jetson. Khám phá Ultralytics Trung tâm Docker để biết thêm chi tiết.
Làm sao tôi có thể chạy Ultralytics YOLO trong một container Docker với GPU ủng hộ?
Đầu tiên, đảm bảo rằng NVIDIA Docker runtime đã được cài đặt và cấu hình. Sau đó, sử dụng lệnh sau để chạy Ultralytics YOLO với GPU ủng hộ:
Lệnh này thiết lập một vùng chứa Docker với GPU truy cập. Để biết thêm chi tiết, hãy xem Hướng dẫn khởi động nhanh Docker .
Làm thế nào để tôi hình dung YOLO kết quả dự đoán trong một container Docker với một máy chủ hiển thị?
Để hình dung YOLO kết quả dự đoán bằng GUI trong vùng chứa Docker, bạn cần cho phép Docker truy cập vào máy chủ hiển thị của bạn. Đối với các hệ thống chạy X11, lệnh là:
xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v ~/.Xauthority:/root/.Xauthority \
-it --ipc=host ultralytics/ultralytics:latest
Đối với hệ thống chạy Wayland, hãy sử dụng:
xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
-v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
--net=host -it --ipc=host ultralytics/ultralytics:latest
Bạn có thể tìm hiểu thêm thông tin trong phần Chạy ứng dụng giao diện người dùng đồ họa (GUI) trong Docker Container .
Tôi có thể gắn các thư mục cục bộ vào không? Ultralytics Container Docker?
Có, bạn có thể gắn các thư mục cục bộ vào Ultralytics Docker container sử dụng -v
lá cờ:
sudo docker run -it --ipc=host --gpus all -v /path/on/host:/path/in/container ultralytics/ultralytics:latest
Thay thế /path/on/host
với thư mục trên máy cục bộ của bạn và /path/in/container
với đường dẫn mong muốn bên trong vùng chứa. Thiết lập này cho phép bạn làm việc với các tệp cục bộ của mình bên trong vùng chứa. Để biết thêm thông tin, hãy tham khảo phần có liên quan trên gắn kết các thư mục cục bộ.