ローカルLLMを動かすために、OllamaとOpen WebUIをDockerで動かすことにした。
GPUのあるPCのため、Docker(コンテナ)とGPUを連携させるための経緯を記載する。
結論
Docker Desktopを利用しない。Docker Engineを利用すると解決した。
NvidiaのドライバーやNVIDIA Container Toolkit (旧 NVIDIA Container Runtime)のインストールは割愛する。
失敗例: Docker Desktopを利用する
最初は、Docker Desktopをインストールした。
ドライバーとNVIDIA Container Toolkitをインストールし、docker info | grep Runtime
でランタイムチェックをしたが…
Runtimes: runc io.containerd.runc.v2
Default Runtime: runc
runtimeでnvidiaが存在しなかった。再インストールしたが変わらなかった。
成功例: Docker Engineを利用する
Docker Desktopと付随するパッケージをアンインストールし、Docker Engineをインストールした。
Docker Desktopと同じく、ドライバーとNVIDIA Container Toolkitをインストールした。
ランタイムチェックをするとnvidiaが存在していた。
Runtimes: runc io.containerd.runc.v2 nvidia
Default Runtime: runc
sudo vim /etc/docker/daemon.json
でdefault-runtimeをnvidiaに設定する。
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
}
}
この設定を追加することで、毎回gpusオプションを使わなくて良い。
Docker Desktopとnvidiaのランタイムは相性が悪かったようだ。