nvidia docker 使い方 - eiichiromomma/CVMLAB GitHub Wiki
nvidia-docker) 使い方
(作業メモ
イメージの選択
ここにある中から選ぶ。基本的にnvidia/cuda:8.0-cudnn6-develで良い。(HOST機のGPU次第。古いイメージが残っているとそのまま古いのが使われることもあるのでバージョン指定した方が良い。)
chainer用のコンテナ
mkdir dockermount
sudo nvidia-docker run -it --name nv-chainer -v $HOME/dockermount/:/mnt nvidia/cuda:8.0-cudnn6-devel /bin/bash
といった感じでコンテナnv-chainerが作れる。$HOMEのdockermountフォルダがコンテナの/mntにマウントされる。 一旦コンテナを作ったら
sudo nvidia-docker start -i nv-chainer
で起動できる。
コンテナ内の作業
基本的にrootでの作業になる。気に食わない場合は
adduser USERNAME
でUSERNAMEユーザが作れるので、/etc/groupのsudoにその名前を加えておけばsudoも使えるようになる。 あとは
apt install ssh
service ssh start
でsshが起動するのでホスト側で
sudo nvidia-docker inspect nv-chainer
としてIPアドレスを調べるか、コンテナで
ifconfig
として調べる。USERNAMEでログインしたらsudo -i bashとでもすればrootになれる。
python2.xの場合
apt update
apt install aptitude python-dev python-numpy python-pip git libhdf5-dev
apt install libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk
apt install python-matplotlib imagemagick ssh vim pyqt5-dev libzmq3-dev python-scipy
pip install pillow h5py protobuf jupyter ipython==5.4.1
pip install chainer
python3の場合
apt update
apt install aptitude git libhdf5-dev
apt install libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev
apt install python3-dev python3-numpy python3-pip python3-tk python3-matplotlib
apt install python3-pyqt5 libzmq3-dev python3-scipy
pip3 install pillow h5py protobuf jupyter ipython
pip3 install chainer
でだいたい使える状態になる。
docker commitで後付けマウント・ポート転送
現在のコンテナの状態をcommitでイメージ化して,それをコンテナにする。当然容量を食うので注意
nvidia-docker commit [-m "(説明)"] (ContainerID) (NewImageName)
nvidia-docker images
commitをやると結構時間がかかる。その後でimagesでNewImageNameが並ぶか確認し,成功してたらコンテナはdocker rmで消して良い(怖いなら後で)。あとは新しいイメージでrunする。
nvidia-docker run -it --name ub_pcl -p 2022:22 -v$HOME/dockermount:/mnt (NewImageName) /bin/bash