【環境構築】docker-composeでGPU(on Ubuntu20.04)を使用するためには

はじめに

こんにちは、がんがんです。
前回の記事で、Ubuntu:20.04環境でdocker + GPUの環境を構築していきました。
gangannikki.hatenadiary.jp


今回の記事では、前回の環境上にdocker-compose + GPUが使える環境をセットアップしたことについて備忘録を残しておきます。
dockerが使えれば問題ないですが、docker-composeが使えた方が幸せなのでセットアップしていきました。

目的

  • Ubuntu 20.04環境にてdocker-composeを利用する
  • docker-composeにてGPUを利用する

参考記事(公式ドキュメント)

docs.docker.com

github.com

docker-composeのインストール

まずは公式ドキュメントを参考にしながらdocker-composeのインストールを行っていきます。


インストールするバージョンは現在の最新バージョンである1.27.3をインストールします。不具合などを考慮して1.27.4ではなく、1.27.3を選択しています。

$  sudo curl -L "https://github.com/docker/compose/releases/download/1.27.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$  sudo chmod +x /usr/local/bin/docker-compose


インストールが完了したら確認してみます。

$  docker-compose -v
docker-compose version 1.27.3, build 4092ae5d

docker-composeでGPUを使用する実験

実際に使えるかどうかを確認してみます。

docker-compose.yml
version: '3.8'

services:
  test:
    image: nvidia/cuda:10.2-base
    runtime: nvidia
    command: nvidia-smi
    environment:
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=compute,utility

きちんと実行出来ましたね。

$  sudo docker-compose run --rm test
Creating gangan_test_run ... done
Tue Sep 29 08:42:20 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100      Driver Version: 440.100      CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
...(略)...


NVIDIA_VISIBLE_DEVICESなどについては公式サイトを参考にしていきます。
github.com

おわりに

今回はUbuntu + Docker + GPU環境においてdocer-compose + GPUの環境をセットアップしてきました。
普段はdocker-composeを使っていることが多いので、セットアップして非常によかったです。