今後、失敗してもリカバリできるようにメモ🥲
Ubuntuでアプリセンターなどでアプリ関係のアップデートを行うとNVIDIA
やCUDA
のドライバー関連、Docker
側のGPUドライバ
を含んだ形でアップデートされてしまい。コンテナ関連が動作しなくなるという現象が発生しました。そこで、なんとかリカバリできたので、その方法をメモしておこうと思います。
(注意):コンテナはそのまま使用できるので絶対に削除しないでください。
エラーの状況
ollamaというコンテナ(GPU使用)を起動しようとすると以下のようなエラーが発生しました。
エラーメッセージ
$ docker start ollama
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook
nvidia-container-cli: initialization error: nvml error: driver not loaded: unknown
Error: failed to start containers: ollama
このエラーの内容:
nvidia-container-cli
が初期化に失敗、GPUドライバ
がロードされていない。
※nvidia-container-cli
は、DockerがNVIDIAのGPUを利用する際に使用するライブラリです。
突然発生したので全く意味がわからなかったのですが、前回の電源OFF時にUbuntuのソフトウエアアップデートを行ったことを思い出し、あ~😫これか~という顔になりました。アップデート時にGPU関連のドライバやミドルウエアも巻き込んでアップデートされてしまったみたいです。
チェック
ドライバの情報が取得できるか確認していきます。nvidia-smi
を使用することで現在の状態を調べる事ができます。今回のチェックでは情報のアウトプットは取得できませんでした。
$ nvidia-smi
nvidia-smi
が正常に動作すれば、GPUの詳細情報が表示されます。もし何も表示されない、またはエラーメッセージが出力される場合、NVIDIAドライバ
の再インストールが必要です。
復旧
復旧は以下の手順で行っていきました。
- ドライバの再インストール
- システム再起動後のドライバのチェック
nvidia-container-toolkit
の再インストール
nvidia-container-toolkit
インストール後のチェック
(1)ドライバの再インストール
まずはドライバの再インストールを行います。
$ sudo apt-get purge nvidia*
$ sudo apt-get update
$ sudo ubuntu-drivers autoinstall
$ sudo reboot
(2)システム再起動後のドライバのチェック
再度、nvidia-smi
を実行し、情報が表示されていればドライバの再インストールは成功しています。
$ nvidia-smi
アプリのアップデートでNVIDIAドライバ
とともにDocker
のコンテナ側からNVIDIAの機能を使用するミドルウエアであるnvidia-container-toolkit
も影響を受けた可能性が考えられます。
以下の手順で再インストールします。
$ sudo apt-get purge nvidia-container-toolkit
$ sudo apt-get install -y nvidia-container-toolkit
$ sudo systemctl restart docker
nvidia-container-toolkit
がうまく動作するか確認します。GPUを使用しているコンテナを動かせば確認ができます。
$ docker start ollama
成功すれば、コンテナ名が1行出力されます。もし、ここで以下のようなエラーが発生する場合には、nvidia-container-toolkit
の再インストールが失敗しています。再度手順を確認してください。
$ docker start ollama
Error response from daemon: could not select device driver "" with capabilities: [[gpu]]
Error: failed to start containers: ollama
おわりに
今回紹介した手順で、なんとかUbuntuのアプリアップデート後に発生したNVIDIAドライバ
やDocker
のGPU関連エラーに対処することができました。噂には聞いていましたが、アップデートによるトラブルは予期できません。とはいえ、無事にリカバリできてホッとしました🙂同様の問題に直面した方が、この記事の内容で役立てば幸いです。