コンテンツにスキップ

Ultralytics用Dockerクイックスタートガイド

Ultralytics Dockerパッケージのビジュアル

このガイドは、Ultralytics プロジェクトの Docker 環境をセットアップするための包括的な入門書として役立ちます。Dockerは、コンテナ内でアプリケーションを開発、出荷、実行するためのプラットフォームです。ソフトウェアがどこにデプロイされても常に同じように実行されるようにする上で特に役立ちます。詳細については、Docker Hub上の Ultralytics Docker リポジトリをご覧ください。

Dockerイメージのバージョン Dockerプル数

学習内容

  • NVIDIA サポートによる Docker のセットアップ
  • Ultralytics Docker イメージのインストール
  • CPUまたはGPUサポート付きのDockerコンテナでUltralyticsを実行する
  • Ultralytics検出結果を表示するためにDockerでディスプレイサーバーを使用する
  • ローカルディレクトリをコンテナにマウントする



見る: Docker入門 | Docker内でのUltralytics pythonパッケージのライブデモの使用方法 🎉


前提条件

  • Dockerがシステムにインストールされていることを確認してください。インストールされていない場合は、Dockerのウェブサイトからダウンロードしてインストールできます。
  • システムにNVIDIA GPUが搭載され、NVIDIAドライバーがインストールされていることを確認してください。
  • NVIDIA Jetsonデバイスを使用している場合は、適切なJetPackバージョンがインストールされていることを確認してください。詳細については、NVIDIA Jetsonガイドを参照してください。

NVIDIA サポートによる Docker のセットアップ

まず、次のコマンドを実行してNVIDIAドライバーが正しくインストールされていることを確認します。

nvidia-smi

NVIDIA Container Toolkitのインストール

では、DockerコンテナでGPU サポートを有効にするために、NVIDIA Container Toolkitをインストールしましょう:

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パッケージをインストールします:

sudo apt-get update

最新バージョンのnvidiaインストールする。

sudo apt-get install -y nvidia-container-toolkit \
  nvidia-container-toolkit-base libnvidia-container-tools \
  libnvidia-container1
オプション:特定のバージョンのnvidiaインストールする。

オプションで、特定のバージョンのnvidiaインストールすることができます。 NVIDIA_CONTAINER_TOOLKIT_VERSION 環境変数:

export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
sudo apt-get install -y \
  nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
  | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo

パッケージリストを更新し、nvidiaパッケージをインストールします:

sudo dnf clean expire-cache
sudo dnf check-update
sudo dnf install \
  nvidia-container-toolkit \
  nvidia-container-toolkit-base \
  libnvidia-container-tools \
  libnvidia-container1
オプション:特定のバージョンのnvidiaインストールする。

オプションで、特定のバージョンのnvidiaインストールすることができます。 NVIDIA_CONTAINER_TOOLKIT_VERSION 環境変数:

export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
sudo dnf install -y \
  nvidia-container-toolkit-${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  nvidia-container-toolkit-base-${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container-tools-${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container1-${NVIDIA_CONTAINER_TOOLKIT_VERSION}
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

DockerによるNVIDIAランタイムの検証

実行 docker info | grep -i runtime を確認するため nvidia がランタイムのリストに表示されます:

docker info | grep -i runtime

Ultralytics Docker イメージのインストール

Ultralyticsは、さまざまなプラットフォームとユースケースに最適化された、いくつかのDockerイメージを提供しています。

  • Dockerfile: GPUイメージ。トレーニングに最適です。
  • Dockerfile-arm64: ARM64アーキテクチャ用で、Raspberry Piなどのデバイスに適しています。
  • Dockerfile-cpu: 推論およびGPUを使用しない環境向けのCPU専用バージョン。
  • Dockerfile-jetson-jetpack4: NVIDIA Jetsonデバイス(NVIDIA JetPack 4実行)向けに最適化されています。
  • Dockerfile-jetson-jetpack5: NVIDIA Jetsonデバイス(NVIDIA JetPack 5実行)向けに最適化されています。
  • Dockerfile-jetson-jetpack6: NVIDIA Jetsonデバイス(NVIDIA JetPack 6実行)向けに最適化されています。
  • Dockerfile-jupyter: ブラウザでJupyterLabを使用したインタラクティブな開発用です。
  • Dockerfile-python: 軽量アプリケーション向けの最小限のpython環境。
  • Dockerfile-conda: Miniconda3と、Conda経由でインストールされたUltralyticsパッケージが含まれています。

最新のイメージをpullするには:

# Set image name as a variable
t=ultralytics/ultralytics:latest

# Pull the latest Ultralytics image from Docker Hub
sudo docker pull $t

DockerコンテナでUltralyticsを実行する

Ultralytics Dockerコンテナを実行する方法は次のとおりです。

CPU のみを使用

# Run without GPU
sudo docker run -it --ipc=host $t

GPU の使用

# Run with all GPUs
sudo docker run -it --ipc=host --runtime=nvidia --gpus all $t

# Run specifying which GPUs to use
sudo docker run -it --ipc=host --runtime=nvidia --gpus '"device=2,3"' $t

The -it フラグは疑似TTYを割り当て、stdinを開いたままにして、コンテナを操作できるようにします。 --ipc=host フラグを使用すると、ホストのIPC名前空間を共有できるようになり、プロセス間でのメモリ共有に不可欠です。 --gpus フラグを使用すると、コンテナはホストのGPUにアクセスできます。

ファイルアクセスに関する注意

コンテナ内のローカルマシン上のファイルを操作するには、Dockerボリュームを使用できます。

# Mount a local directory into the container
sudo docker run -it --ipc=host --runtime=nvidia --gpus all -v /path/on/host:/path/in/container $t

置換 /path/on/host ローカルマシン上のディレクトリパスと /path/in/container Dockerコンテナ内の目的のパスを指定します。

Dockerコンテナでグラフィカルユーザーインターフェース(GUI)アプリケーションを実行する

高度な試験段階 - ユーザーはすべてのリスクを負うものとします

以下の手順は試験的なものです。DockerコンテナとのX11ソケットの共有は、潜在的なセキュリティリスクをもたらします。したがって、このソリューションは管理された環境でのみテストすることを推奨します。詳細については、以下のリソースを参照して、その使用方法をご確認ください。 xhost(1)(2).

Dockerは主にバックグラウンドアプリケーションとCLIプログラムのコンテナ化に使用されますが、グラフィカルプログラムを実行することもできます。Linuxの世界では、2つの主要なグラフィックサーバー(X11(X Window Systemとも呼ばれる)とWayland)がグラフィカル表示を処理します。開始する前に、現在使用しているグラフィックサーバーを特定することが重要です。確認するには、次のコマンドを実行します。

env | grep -E -i 'x11|xorg|wayland'

X11 または Wayland ディスプレイ サーバーのセットアップと構成は、このガイドの範囲外です。上記のコマンドが何も返さない場合は、続行する前に、まずいずれかを作業させる必要があります。

GUIでDockerコンテナを実行する

GPUを使用する
If you're using [GPUs](#using-gpus), you can add the `--gpus all` flag to the command.
Docker実行時フラグ
If your Docker installation does not use the `nvidia` runtime by default, you can add the `--runtime=nvidia` flag to the command.

X11を使用している場合は、次のコマンドを実行して、DockerコンテナがX11ソケットにアクセスできるようにします。

xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v ~/.Xauthority:/root/.Xauthority \
  -it --ipc=host $t

このコマンドは以下を設定します。 DISPLAY 環境変数をホストのディスプレイに設定し、X11ソケットをマウントし、 .Xauthority fileをコンテナにコピーします。その xhost +local:docker コマンドを使用すると、DockerコンテナがX11サーバーにアクセスできるようになります。

Waylandの場合は、次のコマンドを使用します。

xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
  -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
  --net=host -it --ipc=host $t

このコマンドは以下を設定します。 DISPLAY 環境変数をホストのディスプレイに設定し、Waylandソケットをマウントし、DockerコンテナがWaylandサーバーにアクセスできるようにします。

GUI での Docker の使用

これで、Dockerコンテナ内でグラフィカルアプリケーションを表示できます。たとえば、次のCLIコマンドを実行して、YOLO11モデルからの予測を視覚化できます。

yolo predict model=yolo11n.pt show=True
テスト

Docker グループが X11 サーバーにアクセスできることを検証する簡単な方法は、GUI プログラムでコンテナを実行することです。 xclock または xeyes。または、これらのプログラムをUltralytics Dockerコンテナにインストールして、GNU-LinuxディスプレイサーバーのX11サーバーへのアクセスをテストすることもできます。問題が発生した場合は、環境変数を設定することを検討してください。 -e QT_DEBUG_PLUGINS=1。この環境変数を設定すると、デバッグ情報の出力が有効になり、トラブルシューティングのプロセスに役立ちます。

Docker GUIを終了するとき。

アクセス権の取り消し

どちらの場合も、完了したらDockerグループからのアクセスを取り消すことを忘れないでください。

xhost -local:docker
ターミナルで画像の結果を直接表示したいですか?

ターミナルを使用して画像の結果を表示する方法については、以下のガイドを参照してください。


おめでとうございます!これでDockerでUltralyticsを使用する準備が整い、その強力な機能を活用できます。別のインストール方法については、Ultralyticsクイックスタートドキュメントをご覧ください。

よくある質問

DockerでUltralyticsを設定するにはどうすればよいですか?

DockerでUltralytics セットアップするには、まずDockerがシステムにインストールされていることを確認します。NVIDIA GPUお持ちの場合は、NVIDIA Container ToolkitをインストールしてGPU サポートを有効にします。次に、以下のコマンドを使用して、Docker Hubから最新のUltralytics Dockerイメージを取り出します:

sudo docker pull ultralytics/ultralytics:latest

詳細な手順については、Dockerクイックスタートガイドを参照してください。

機械学習プロジェクトでUltralytics Dockerイメージを使用する利点は何ですか?

Ultralytics Dockerイメージを使用すると、異なるマシン間で一貫した環境が保証され、同じソフトウェアと依存関係が再現されます。これは特に、 チーム間での共同作業、さまざまなハードウェアでのモデルの実行、および再現性の維持を容易にします。GPUベースのトレーニングの場合、Ultralyticsは、次のような最適化されたDockerイメージを提供します。 Dockerfile 一般的なGPUの使用について Dockerfile-jetson NVIDIA Jetsonデバイスの場合。詳細はこちら Ultralytics Docker Hub 詳細については。

GPUサポート付きのDockerコンテナでUltralytics YOLOを実行するにはどうすればよいですか?

まず、NVIDIA Container Toolkitがインストールされ、設定されていることを確認する。次に、以下のコマンドを使用して、GPU サポートするUltralytics YOLO 実行します:

sudo docker run -it --ipc=host --runtime=nvidia --gpus all ultralytics/ultralytics:latest # all GPUs

このコマンドは、GPUアクセスでDockerコンテナをセットアップします。詳細については、Dockerクイックスタートガイドを参照してください。

ディスプレイサーバーを備えたDockerコンテナでYOLOの予測結果を可視化するにはどうすればよいですか?

Dockerコンテナ内のGUIでYOLO予測結果を可視化するには、Dockerがディスプレイサーバーにアクセスできるようにする必要があります。X11を実行しているシステムの場合、コマンドは次のとおりです。

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

Waylandを実行しているシステムの場合は、以下を使用してください:

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

詳細については、Docker コンテナでグラフィカルユーザーインターフェース(GUI)アプリケーションを実行するセクションを参照してください。

ローカルディレクトリをUltralytics Dockerコンテナにマウントできますか?

はい、ローカルディレクトリをUltralytics Dockerコンテナにマウントできます。 -v フラグ:

sudo docker run -it --ipc=host --runtime=nvidia --gpus all -v /path/on/host:/path/in/container ultralytics/ultralytics:latest

置換 /path/on/host ローカルマシン上のディレクトリと /path/in/container コンテナ内の目的のパスを指定します。この設定により、コンテナ内でローカルファイルを操作できます。詳細については、以下を参照してください。 ファイルアクセスに関する注意 セクションをご参照ください。



📅 1年前に作成 ✏️ 8日前に更新

コメント