背景
2018年6月6日現在、apt
ではdocker-compose 1.17.1
しかインストール出来ません。
$ sudo apt install apt-show-versions
$ apt-show-versions -a -p docker-compose
docker-compose:all 1.17.1-2 bionic jp.archive.ubuntu.com
No stable version
docker-compose:all not installed
しかしdocker-compose
でnvidia-docker
のコンテナを管理するためには、docker-compose 1.19.0
以降が必要です。
参照: https://github.com/docker/compose/releases/tag/1.19.0
そこで、aptを使わずにdocker-compose
をインストールします。
環境
- OS: Ubuntu 18.04
docker 17.12とnvidia-docker2がインストール済み。
この手順で入れました: https://qiita.com/sabaku2017/items/f7cc8fd614ea7c15034e
docker-compose 1.21.2のインストール
せっかくなので、現時点で最新の1.21.2をインストールします。
手順は、公式で解説されている通りの手順です。
参照: https://docs.docker.com/compose/install/
githubから実行ファイルをダウンロード
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
実行権限付ける
sudo chmod +x /usr/local/bin/docker-compose
インストールされたバージョンの確認
$ sudo docker-compose --version
docker-compose version 1.21.2, build a133471
version 1.21.2が入りました。
動作確認
nvidia-docker2などで使うruntime
オプションが動作するか確認してみましょう。
前提として、この手順はnvidia-docker2が使える状態になっていないと動かないです。
docker-compose.ymlの準備
nvidia-docker上でコンテナを起動し、nvidia-smi
を実行するように指定します。
$ cat docker-compose.yml
version: '2.3'
services:
nvidia:
image: nvidia/cuda
runtime: nvidia
command: nvidia-smi
up
してみます。
$ sudo docker-compose up
Starting temp_nvidia_1 ... done
Attaching to temp_nvidia_1
nvidia_1 | Wed Jun 6 04:56:28 2018
nvidia_1 | +-----------------------------------------------------------------------------+
nvidia_1 | | NVIDIA-SMI 390.48 Driver Version: 390.48 |
nvidia_1 | |-------------------------------+----------------------+----------------------+
nvidia_1 | | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
nvidia_1 | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
nvidia_1 | |===============================+======================+======================|
nvidia_1 | | 0 GeForce GTX 1080 Off | 00000000:01:00.0 On | N/A |
nvidia_1 | | 28% 42C P8 7W / 180W | 838MiB / 8118MiB | 1% Default |
nvidia_1 | +-------------------------------+----------------------+----------------------+
nvidia_1 |
nvidia_1 | +-----------------------------------------------------------------------------+
nvidia_1 | | Processes: GPU Memory |
nvidia_1 | | GPU PID Type Process name Usage |
nvidia_1 | |=============================================================================|
nvidia_1 | +-----------------------------------------------------------------------------+
temp_nvidia_1 exited with code 0
動きました。完成です。