Docker ヘルプ リクエスト: Swarm 内のコンテナを のデバイスに接続しようとしています/dev
。Docker コンテナで実行している場合、接続はデバイス マッピングを介して正しく機能しますが、Swarm ノード内のデバイスに接続できません。
このデバイスはたまたま Gstreamer パイプラインで vaapi ドライバーを使用するためのグラフィックス ハードウェアであり、ここにあります/dev/dri/renderD128
:
Swarmkit Generic Resources を介してデバイスにマッピングする方法についてアドバイスを求めています。
Swarmkit とグラフィックス ハードウェアに関する次のような議論があります。
- (問題) Swarmkit Generic Resources のサポートを追加 #33439: https://github.com/moby/moby/issues/33439
- (マージされた PR) 汎用リソース #5416 を追加: https://github.com/docker/docker.github.io/pull/5416
しかし、私はこれらを解決策に抽出することができませんでした.
swarm で実行されていないときにこのデバイスに正常に接続する 1 つの docker run コマンドは次のようになります。
docker run -ti \
-e XDG_RUNTIME_DIR=/tmp \
--device=/dev/dri/card0:/dev/dri/card0 \
--device=/dev/dri/renderD128:/dev/dri/renderD128 \
-v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
<docker-image> bash
繰り返しになりますが、これはコンテナー、スウォーム、およびデバイス マッピング全般に関する一般的な質問であり、この特定のデバイスとは関係ありません。
docker 構成ファイル バージョン 3 を使用しており、" device
" オプションを試しましたが、期待どおりに失敗しました:
https://docs.docker.com/compose/compose-file/#devices
「(バージョン 3) Compose ファイルを使用して swarm モードでスタックをデプロイする場合、このオプションは無視されます。」
あなたの助けに感謝します。