1. ホーム
  2. ドッカー

nvidia-dokcer FAQ(ブロガーは様々なポットホールを踏んでいます。)

2022-03-03 12:09:12

nvidia-dockerのインストールの最後のステップになると、インストールが成功したかどうかをテストするために、次のコマンドを入力するよう求められます。

sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi

この時点で、以下のような結果が表示されれば、公式チュートリアルはインストールが成功したことを教えてくれます。

しかし、すべての人が表示に成功するわけではなく、ブログ主は一連の問題に遭遇したので、参考のために解決策を記録しておきます。

1.エラーに遭遇しました:nvidia-docker|2018/11/01 15:05:51 エラーです。unix:///var/run/ docker.sock にある Docker デーモン ソケットに接続しようとしているときに、パーミッションが拒否されました。取得 http://%2Fvar%2Frun%2Fdocker.sock/v1.26/version: dial unix /var/run/docker.sock: 接続: パーミッションが拒否されました。

このエラーは、通常、不十分なパーミッションが原因です。管理者権限を得るために、コマンドの前にsudoを追加してください。(省略)

2. encountered errors: pull imageで最初に表示、ダウンロード完了後に表示 encountered error: container_linux.go:247: starting container process caused "exec: \"nvidia-smi": executable file not found in $PATH".Error;
docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"nvidia-smi& quot;: executable file not found in $PATH".

インターネットは本当に同様の問題を見つけることができないので、この問題は、長い間私を悩ませている、最初はnvidiaドライバが環境変数$ PATHに起因する、正しくインストールされていないことを考えたが見つけることができない、しかし、実行ファイル/ usr / bin / nvidia -スミを追加するエクスポートを使用しようとしましたが、動作しませんでした、そして、私はこの問題はどちらドライバのインストールの問題やカーネル関連だと思うブログを読んで感じてください。

しかし、nvidia-smiコマンドでドライバのインストールをテストしたところ、問題がなかったので、推測するに dockerのバージョン番号とカーネルのバージョン番号が一致しない。

そこで、dockerのバージョンをインストールする手順を探したのですがうまくいかず、最終的に、dockerコンテナを実行するときにcudaのバージョンをインストールすることを知りました。

sudo nvidia-docker run --rm nvidia/cuda:8.0-devel nvidia-smi

しかし、ここまではうまくいかず、新たな問題3が発生しましたので、以下をご覧ください。

3. エラーが報告されました。

コマンドを入力します。

sudo nvidia-docker run --rm nvidia/cuda:8.0-devel nvidia-smi

エラー報告に遭遇しました。

8.0-develです。nvidia/cuda からプルする
18d680d61657: プル完了
0addb6fece63: 引き完了
78e58219b215: 引き抜き完了
eb6959a66df2: プルアップ完了。
7a0b022c2633: プルアップ完了
2536ccb3c0e4: 引き完了
72568544e638: プルアップ完了
eb3c7a1fa7df: 引き完了
Digest: sha256:953003e905c1201b7bc45de52d94f8e1b1111f510ce7e550791281dc8b8649e2
ステータスです。nvidia/cuda:8.0-devel 用の新しいイメージをダウンロードしました。
nvidia-docker|2018/11/01 10:20:17 エラーです。Could not load UVM kernel module.nvidia-modprobeはインストールされていますか?

この時点で、プロンプトに従って nvidia-modprobe をインストールします。

sudo apt-get install nvidia-modprobe


インストール後、再度お試しください

sudo nvidia-docker run --rm nvidia/cuda:8.0-devel nvidia-smi

報告された任意のエラー。

docker: デーモンからのエラー応答: nvidia_driver を作成します。

_384.130: create nvidia_driver_384.130: Error looking up volume plugin nvidia-docker: legacy plugin: plugin not found.
docker run --help'を参照してください。


ここで384.130は私のドライバのバージョンです。あなたのは違うかもしれませんが、それは問題ではありません。ドライバのインストールの問題ではないことを試してみた後、次のコマンドを入力してください。

systemctl status nvidia-docker

以下の場合に表示します。

nvidia-docker.service - NVIDIA Docker プラグイン
   ロードされる: ロードされる (/lib/systemd/system/nvidia-docker.service; enabled; vendor pr)
Active: failed (Result: start-limit-hit) since IV 2018-11-01 09:28:07 CST; 1h
     Docs: https://github.com/NVIDIA/nvidia-docker/wiki
  プロセス 15768 ExecStopPost=/bin/rm -f $SPEC_FILE (code=exited, status=0/SUCCE)
  プロセス 15761 ExecStartPost=/bin/sh -c /bin/echo unix://$SOCK_DIR/nvidia-dock
  プロセス 15746 ExecStartPost=/bin/sh -c /bin/mkdir -p $( ディール名 $SPEC_FILE )
  プロセス 15745 ExecStart=/usr/bin/nvidia-docker-plugin -s $SOCK_DIR (code=exit)
 メインPID: 15745 (code=exited, status=1/FAILURE)

Nov 01 09:28:06 yu408 systemd[1]: NVIDIA Docker プラグインの起動に失敗しました。
Nov 01 09:28:06 yu408 systemd[1]: nvidia-docker.service。ユニット入力に失敗しました
Nov 01 09:28:06 yu408 systemd[1]: nvidia-docker.service。結果 'ex' で失敗しました
11月01日 09時28分07秒 yu408 systemd[1]: nvidia-docker.service: サービスのホールドオフ時間
Nov 01 09:28:07 yu408 systemd[1]: NVIDIA Docker プラグインを停止しました。
Nov 01 09:28:07 yu408 systemd[1]: nvidia-docker.service。開始要求が繰り返される
Nov 01 09:28:07 yu408 systemd[1]: NVIDIA Docker プラグインの起動に失敗しました。
Nov 01 09:28:07 yu408 systemd[1]: nvidia-docker.service。ユニット入力に失敗しました
Nov 01 09:28:07 yu408 systemd[1]: nvidia-docker.service。結果 'st' で失敗しました

activeのステータスがFAILEDになっていることがわかりますので、以下のコマンドを入力して起動します。

systemctl start nvidia-docker

 試しにもう一度以下のコマンドを入力してみてください。

systemctl status nvidia-docker

以下のように表示されれば成功です。

nvidia-docker.service - NVIDIA Docker プラグイン
   ロードされる: ロードされる (/lib/systemd/system/nvidia-docker.service; enabled; vendor pr)
  Active: アクティブ(実行中) since IV 2018-11-01 10:53:01 CST; 17s前
     ドック: https://github.com/NVIDIA/nvidia-docker/wiki
  プロセス 15768 ExecStopPost=/bin/rm -f $SPEC_FILE (code=exited, status=0/SUCCE)
  プロセス 20905 ExecStartPost=/bin/sh -c /bin/echo unix://$SOCK_DIR/nvidia-dock
  プロセス 20889 ExecStartPost=/bin/sh -c /bin/mkdir -p $( ディール名 $SPEC_FILE )
 メインPID: 20888 (nvidia-docker-p)
    タスク数:8
   メモリ 36.5M
      CPU 1.165s
   CGグループです。/システム.スライス/nvidia-docker.service
           └─20888 /usr/bin/nvidia-docker-plugin -s /var/lib/nvidia-docker

Nov 01 10:53:01 yu408 systemd[1]: NVIDIA Docker プラグインを起動中...
Nov 01 10:53:01 yu408 nvidia-docker-plugin[20888]。/usr/bin/nvidia-docker-plugi
Nov 01 10:53:01 yu408 nvidia-docker-plugin[20888]です。/usr/bin/nvidia-docker-plugiです。
Nov 01 10:53:01 yu408 systemd[1]: NVIDIA Docker プラグインを開始しました。
Nov 01 10:53:01 yu408 nvidia-docker-plugin[20888]です。/usr/bin/nvidia-docker-plugi
Nov 01 10:53:03 yu408 nvidia-docker-plugin[20888]です。/usr/bin/nvidia-docker-plugi
Nov 01 10:53:03 yu408 nvidia-docker-plugin[20888]です。/usr/bin/nvidia-docker-plugi
Nov 01 10:53:03 yu408 nvidia-docker-plugin[20888]です。/usr/bin/nvidia-docker-plugiです。

そして、再び入力する。

sudo nvidia-docker run --rm nvidia/cuda:8.0-devel nvidia-smi

 次のような表示があれば、うまくいったということで、完了です。