準備
公式のDocker導入方法
docker、docker-composeがインストールされており、カレントディレクトリにdocker-compose.ymlがあるとする。
version: '2.4'
services:
nvsmi:
image: ubuntu:16.04
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
command: nvidia-smi
NVIDIA_VISIBLE_DEVICESについては
[nvidia-container-runtime]
(https://github.com/nvidia/nvidia-container-runtime#environment-variables-oci-spec)
qiitaでは
NVIDIA GPU が使える Docker イメージの作り方
DockerでのGPU使用方法
コンテナ内でgpuを使うには
$docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
のように--runtime=nvidia
でオプション設定する
Docker19.03以降では
$ docker run --gpus all --rm nvidia/cuda nvidia-smi
のように--gpus all
でオプション設定する
nvidia-docker wiki
Docker-composeでのGPU使用方法
複数のコンテナを立ち上げるdocker-composeでgpuを使う方法がわからなかったので調べた。
docker-composeでもgpuを使うにはruntime
で設定するとのこと
How do I specify nvidia runtime from docker-compose.yml?
そこで上記のようにdocker-compose.ymlを作成
では、実行
$ docker-compose up
ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services.nvidia: 'runtime'
あれ、gpuが使えない
docker-composeにruntimeが追加されたのは1.19以降
Added support for the runtime option in service definitions
とのことなので、$ sudo apt install docker-compose
でインストールしたdocker-composeのversionを調べると
$ docker-compose -v
docker-compose version 1.17.1, build unknown
バージョンが2.3より古い!!!
$ sudo apt remove docker-compose
で削除
公式のdocker compose releasesからver1.24.1をダウンロードして実行権限を与える
$ curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
docker-compose version確認
$ docker-compose -v
docker-compose version 1.24.1, build 4667896b
実行してみると
$ docker-compose up