Ultralytics用Dockerクイックスタートガイド
このガイドは、Ultralytics プロジェクトの Docker 環境をセットアップするための包括的な入門書として役立ちます。Dockerは、コンテナ内でアプリケーションを開発、出荷、実行するためのプラットフォームです。ソフトウェアがどこにデプロイされても常に同じように実行されるようにする上で特に役立ちます。詳細については、Docker Hub上の Ultralytics Docker リポジトリをご覧ください。
学習内容
- NVIDIA サポートによる Docker のセットアップ
- Ultralytics Docker イメージのインストール
- CPUまたはGPUサポート付きのDockerコンテナでUltralyticsを実行する
- Ultralytics検出結果を表示するためにDockerでディスプレイサーバーを使用する
- ローカルディレクトリをコンテナにマウントする
見る: Docker入門 | Docker内でのUltralytics pythonパッケージのライブデモの使用方法 🎉
前提条件
- Dockerがシステムにインストールされていることを確認してください。インストールされていない場合は、Dockerのウェブサイトからダウンロードしてインストールできます。
- システムにNVIDIA GPUが搭載され、NVIDIAドライバーがインストールされていることを確認してください。
NVIDIA サポートによる Docker のセットアップ
まず、次のコマンドを実行してNVIDIAドライバーが正しくインストールされていることを確認します。
nvidia-smi
NVIDIA Docker Runtime のインストール
次に、NVIDIA Dockerランタイムをインストールして、DockerコンテナでGPUサポートを有効にします。
# 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
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 --gpus all $t
# Run specifying which GPUs to use
sudo docker run -it --ipc=host --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 --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.
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を設定するにはどうすればよいですか?
UltralyticsをDockerでセットアップするには、まずDockerがシステムにインストールされていることを確認してください。NVIDIA GPUをお持ちの場合は、NVIDIA Dockerランタイムをインストールして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 Dockerランタイムがインストールされ、構成されていることを確認します。次に、次のコマンドを使用して、GPUサポートでUltralytics YOLOを実行します。
sudo docker run -it --ipc=host --gpus all ultralytics/ultralytics:latest
このコマンドは、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 --gpus all -v /path/on/host:/path/in/container ultralytics/ultralytics:latest
置換 /path/on/host
ローカルマシン上のディレクトリと /path/in/container
コンテナ内の目的のパスを指定します。この設定により、コンテナ内でローカルファイルを操作できます。詳細については、以下を参照してください。 ファイルアクセスに関する注意 セクションをご参照ください。