docker19.03でdockerコマンドでgpuコンテナを作成できるようになったらしいので試した まあまあ大変だったので残しておく
環境
- ubuntu: 18.04
- docker: 19.03
エラー
ホストマシンにdockerとnvidia-smiを入れてから以下を実行したらエラーがでた、
docker run -it --rm --gpus all ubuntu nvidia-smi
docker: Error response from daemon: linux runtime spec devices: could not select device driver "" with capabilities: [[gpu]].
↓を参考にやっていったらできたので手順を書いておく
http://collabnix.com/introducing-new-docker-cli-api-support-for-nvidia-gpus-under-docker-engine-19-03-0-beta-release/
install
driversを入れて、再起動
apt-get install ubuntu-drivers-common \
&& sudo ubuntu-drivers autoinstall
reboot
以下のスクリプトを作成し、実行する
vi nvidia-container-runtime-script.sh
内容は以下
curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \
sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update
Execute the script
実行
sh nvidia-container-runtime-script.sh
sudo apt-get install nvidia-container-runtime
docker19.03を入れる
curl -fsSL https://test.docker.com -o test-docker.sh
sh test-docker.sh
コンテナ作成、確認
docker run -it --rm --gpus all ubuntu nvidia-smi
Wed Aug 7 15:57:09 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.26 Driver Version: 430.26 CUDA Version: N/A |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 1050 Off | 00000000:01:00.0 Off | N/A |
| N/A 58C P0 N/A / N/A | 880MiB / 4042MiB | 23% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+