最初に注意すべき問題を先に書いておきます。
以前、会社でこれをインストールしようとしていましたが、うまくいかず、nvidia-smi で GPU 情報を取得できず、ドライバとライブラリのバージョンが一致しないというエラーが表示されました。
後で問題の原因を見つけました。
ホストマシンの GPU ドライバのバージョンをコンテナの GPU ドライバのバージョンと一致させる必要があります!!!
1. ubuntu 14.04 イメージを pull する
sudo docker pull ubuntu:14.04
2. nvidia-docker をインストールする(このステップは必須ではありませんが、行った場合、nvidia-docker コマンドを使用して起動できるようになります。行わない場合、第 3 ステップの --privileged コマンドでも GPU を呼び出すことができます)
アドレス:https://github.com/NVIDIA/nvidia-docker
wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb
sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb
nvidia-docker run --rm nvidia/cuda nvidia-smi
3. コンテナを作成し、ubuntu イメージに入り、本当の root 権限を持つ
docker run -it --privileged=true ubuntu:14.04
ここで privileged パラメータの機能について説明します。true に設定すると、docker の root に本当の root 権限を与えることができ、ホストマシンのハードウェアなどを呼び出すことができます。また、docker 内で docker を使用することもできます。
4. 新しいターミナルを開き、準備した cuda インストールパッケージと cudnn 圧縮パッケージをコンテナにコピーする
docker ps
docker cp cuda.deb {@CONTAINER ID}:/root/
docker cp cudnn.tgz {@CONTAINER ID}:/root/
5. コンテナのターミナルに戻り、以下の記事の中間部分の手順に従って CUDA と CUDNN をインストールする
【Caffe】Caffe,CUDA,cuDNN インストールガイド、およびさまざまな問題の解決策(Ubuntu14.04)
6. 変更を新しいイメージに保存する
exit #コンテナを終了する
docker ps -a #コンテナIDの先頭4桁を確認する
docker commit xxxx ubuntu:gpu
7. アップロードしたイメージ:
docker pull renhanchi/ubuntu
このイメージは、ubuntu14.04 をベースにしており、以下を主にインストールしています:
nvidia:375.66
CUDA:8.0
CUDNN:5.1
caffe
tensorflow-gpu:1.1
必ず上記の第 3 ステップのコマンドを使用してイメージを実行することを忘れないでください!
8. ローカルイメージを保存する
docker save imageID > filename
docker load < filename
docker export containID > filename
docker import - filename
第 1 の方法は、イメージ保存に操作履歴が保存され、過去のバージョンに戻すことができます。
第 2 の方法は、コンテナに保存されたイメージは操作履歴が保存されないため、ファイルサイズが小さくなります。
第 2 の方法で第 3 ステップのコマンドを実行すると、システムに入ることができない場合があります。
エラーメッセージ:docker: Error response from daemon: No command specified.
以下のコマンドを使用することもできます。
docker run -it --privileged=true ubuntu:container /bin/bash