Dockerで`OCI runtime create failed`が発生したときの対処法

# はじめに
`docker compose up`を実行したところ，これまで動いていたはずの環境が以下のエラーにより動かなくなっていた．

```bash: error msg
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 #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: initialization error: nvml error: driver/library version mismatch: unknown
```

# 原因究明
まず，目に付くのが`OCI runtime create failed` & `nvidia-container-cli`．(ここら辺がよくエラーになるのはどうにかならないものなんですかね……？)
検索したところ，以下の記事がヒット．

https://github.com/NVIDIA/nvidia-docker/issues/1648

読んでいくと，どうやら`nvidia-smi`を確認しろとのこと．

```bash
$ nvidia-smi
Failed to initialize NVML: Driver/library version mismatch
NVML library version: 535.146
```

原因はこれのようです．


# 対処法
これについても検索すると以下の記事がヒット

https://stackoverflow.com/questions/43022843/nvidia-nvml-driver-library-version-mismatch

これによると，`reboot`しろとのことですが，諸事情により`docker compose`を動かしているサーバの電源は落とせなかったので，更に読み進めると以下のコマンドを発見．

:::note warn
本コマンドは[元の記事](https://stackoverflow.com/questions/43022843/nvidia-nvml-driver-library-version-mismatch)から拾ってきたものです．英語が読める方はそちらを参考にされた方が良いかなと思います．
:::

1. ロードされているドライバの確認
    ```bash
    $ lsmod | grep nvidia
    nvidia_uvm           1511424  0
    nvidia_drm             77824  1
    nvidia_modeset       1302528  1 nvidia_drm
    nvidia              56659968  2 nvidia_uvm,nvidia_modeset
    drm_kms_helper        311296  1 nvidia_drm
    drm                   622592  5 drm_kms_helper,nvidia,nvidia_drm
    ```
1. `graphical target`の無効化
    ```bash
    $ systemctl isolate multi-user.target
    ```
1. ドライバのアンロード
    ```bash
    $ sudo rmmod nvidia_uvm
    $ sudo rmmod nvidia_drm
    $ sudo rmmod nvidia_modeset
    $ sudo rmmod nvidia
    ```
1. `nvidia-smi`の実行
    ```bash
    $ nvidia-smi
    Thu Jan 18 05:17:56 2024       
    +---------------------------------------------------------------------------------------+
    | NVIDIA-SMI 535.146.02             Driver Version: 535.146.02   CUDA Version: 12.2     |
    |-----------------------------------------+----------------------+----------------------+
    | GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
    |                                         |                      |               MIG M. |
    |=========================================+======================+======================|
    |   0  NVIDIA GeForce RTX 3090        Off | 00000000:2B:00.0 Off |                  N/A |
    |  0%   44C    P0              97W / 350W |      0MiB / 24576MiB |      0%      Default |
    |                                         |                      |                  N/A |
    +-----------------------------------------+----------------------+----------------------+
                                                                                             
    +---------------------------------------------------------------------------------------+
    | Processes:                                                                            |
    |  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
    |        ID   ID                                                             Usage      |
    |=======================================================================================|
    |  No running processes found                                                           |
    +---------------------------------------------------------------------------------------+
    ```


# 最後に
`OCI runtime create failed`の根本的な原因を調査して対策すべきだと思うのですが，調べたものの全く分かりませんでした．
どなたかご存知の方がいればご教示頂けますと幸いです．


# 参考文献
https://github.com/NVIDIA/nvidia-docker/issues/1648

https://stackoverflow.com/questions/43022843/nvidia-nvml-driver-library-version-mismatch

https://unix.stackexchange.com/questions/440840/how-to-unload-kernel-module-nvidia-drm