【忘備録】 nvidia dockerでUbuntu18.04に機械学習用の環境構築 〜最新版(2020/7)〜 【第1回 run dockerまで】

nvidia dockerをUbuntu18.04で走らせて機械学習用の環境を構築します.
当方,ゴリゴリの機械学習マンではないので悪しからず.

ライブラリはtensorflow・kerasとpytorchを入れようと思っています.
バージョンなどは私の環境での動作なので,適宜自分の環境に置き換えて進めて下さい.バージョンの調べ方なども書いていくつもりです.

このページに書いてあることは,基本的にDockerの外の環境設定の部分です.
ここでインストールするあれこれはUbuntu本体に入ります.

はじめに

nvidiaドライバやCUDAが絶対に入っていない確信がある場合はスキップ可能.
やっておいても害にならないので分からなければやっておく.

sudo apt --purge remove nvidia-*
sudo apt --purge remove cuda-*

nvidiaドライバのインストール

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

nvidiaの公式サイトでインストールするドライバを調べるか,端末で

ubuntu-drivers devices

で調べられる.
これなんで一致しないの……?

インストールするドライバを決めたらaptでインストール

sudo apt install nvidia-driver-435
sudo reboot

nvidia-smiが問題なくできればOK.

CUDAのインストール

公式サイトの手順通りに進める.
deb [network]を選択すれば以下のようにコマンドからインストールできる.

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
sudo apt update
sudo apt install -y cuda-drivers

dockerのインストール

こちらも公式サイトの手順通りに進める.

sudo apt update
sudo apt install -y \
   apt-transport-https \
   ca-certificates \
   curl \
   gnupg-agent \
   software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
sudo apt update
sudo apt install -y \
   docker-ce \
   docker-ce-cli \
   containerd.io

インストールが終わったら

sudo docker run hello-world

としてみて,エラーが出なければOK

nvidia dockerのインストール

こちらも公式サイトの手順通りに進める.

sudo docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo apt-get purge nvidia-docker
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
   sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
   sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt update
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
sudo docker login

リポジトリのインストールはこちら.と書いてある部分を忘れないように.

docker login

docker hubのパスワードを入力.

docker run --runtime=nvidia --rm nvidia/10.1-cudnn7-runtime-ubuntu18.04 nvidia-smi

とするとdockerの中からnvidia-smiした結果が出るので,GPUの情報が正しく表示されていればOK

nvidia dockerを立ち上げる.

以下をDockerfileという名前で保存.
※ ${あなたのなまえ}は適宜埋めて下さい

ARG nvidia_cuda_version=10.1-cudnn7-runtime-ubuntu18.04

FROM nvidia/cuda:${nvidia_cuda_version}
LABEL maintaine="あなたのなまえ"

RUN apt update && apt upgrade -y && apt install -y --no-install-recommends \
   python \
   python-pip \
   python3 \
   python3-pip \
   && rm -rf /var/lib/apt/lists/*

とりあえずpythonとpipだけ入れておいた.

buildのコマンド
※ ${なんか好きな名前}は適宜埋めて下さい

sudo docker build . -t なんか好きな名前

runのコマンド
※ ${なんか好きな名前}はbuildのときの名前と同じ

sudo docker run \
   --runtime=nvidia \
   --rm -it \
   -p 8888:8888 \
   -v $(pwd):/home \
   -w /home \
   なんか好きな名前 \
   "$@"

それぞれシェルスクリプトのファイルを作っておくと楽だと思います.

homeが表示されれば成功です.
pythonしか使わない人はここまででOK

ここまでのファイルを公開しています

Dockerfileとbuild,run用のshellスクリプトを公開しました
ご自由にダウンロードして使って下さい.

続きは次のページに

続きはこちらのページです.
機械学習のライブラリではないけど,ほぼ必須だよねというライブラリたちを整えます.具体的にはnumpyとかmatplotlib,sklearn(※sklearnは機械学習のライブラリです)などです.

参考にさせていただいたサイト
ドライバを入れるところまで
https://qiita.com/gen10nal/items/1e7fe8a1b2e9ad1e7919 
Dockerのセットアップ
https://note.com/setoyama60jp/n/n600df9f34230 

書いた人: @wina_S_1991

この記事が気に入ったらサポートをしてみませんか?