Docker コンテナがハングし、グラフィック カード ドライバーが異常です: nvidia-container-cli: 初期化エラー: nvml エラー: ドライバーが読み込まれていません...

Docker コンテナが起動できない、Nvidia ドライバー関連の問題

1. 特定のエラー報告
ここに画像の説明を挿入

Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: Running hook #0:: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: initialization error: nvml error: driver not loaded: unknown
Error: failed to start containers: xxxxxxxxx
xxx@xxx:~$ nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

2. 問題分析
コンテナーは Nvidia グラフィック カード ドライバーに依存しており、ドライバーが壊れています。
余談: クライアントのサーバーは長年にわたってインターネットに接続されており、グラフィック カード ドライバーは過去数か月間で複数回切断されています。調査の理由は、Linux/Ubuntu カーネルが自動的に更新されるためです。ドライバーが無効であるため、ドライバーを再インストールすることで解決できる場合が多いですが、更新によってグラフィック カード ドライバーが失敗する可能性があります。

3. 解決策
カーネルの自動アップデートをオフにし、
以下の 2 つの設定ファイルの値をすべて「0」に変更し、保存して再起動します

xxxx@xxxx:/xxxxxx/xxxxxxxxxxx/xxxxx$ uname -r
5.15.0-58-generic
xxxx@xxxx:/xxxxxx/xxxxxxxxxxx/xxxxx$ cat /etc/apt/apt.conf.d/10periodic
#把下面值全改为“0”
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
   
xxxx@xxxx:/xxxxxx/xxxxxxxxxxx/xxxxx$ cat /etc/apt/apt.conf.d/20auto-upgrades 
#把下面值全改为“0”
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

xxxx@xxxx:/xxxxxx/xxxxxxxxxxx/xxxxx$ sudo vim /etc/apt/apt.conf.d/10periodic 
xxxx@xxxx:/xxxxxx/xxxxxxxxxxx/xxxxx$ sudo vim /etc/apt/apt.conf.d/20auto-upgrades 
xxxx@xxxx:/xxxxxx/xxxxxxxxxxx/xxxxx$ sudo reboot -i

次に、ドライバーを再インストールします。インストール後、コンテナーは起動でき、nvidia-smi はコンテナーの外では使用できますが、コンテナー内では動作せず、プログラムが実行できないことがわかりました。

RuntimeError: No CUDA GPUs are available
(xxxxai) root@xxxxxx:/workspace/projects/xxxxx/xxxxai/xxxxx# nvidia-smi
No devices were found

Dockerサービスを再起動します

 systemctl restart docker 

OK、うまくいきます!


偉い人は「dkms オプションを備えたドライバーをインストールできる」と言っていますが、私はそれをテストしていません。それを参照することもできます: https://blog.csdn.net/wtlll/article/details/126541686

おすすめ

転載: blog.csdn.net/ghcony/article/details/129702942