nvidia-docker+Dockerfileなコンテナの立て方
3883 ワード
とどのつまり
予めDockerfileをしっかり書きたい、しかしnvidia-docker(2)使うときは、
# Test nvidia-smi with the latest official CUDA image
$ docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi
みたいにnvidia製のイメージを使わないとうまくいかなそう、どうすればいいの...?って思ったのでいろいろやってみた
結論、
$ docker run --runtime=nvidia オリジナルのDockerfileをビルドしたイメージ
でいけた。ただしDockerfileは本家に倣う必要あり。
ホスト環境
- ubuntu16.04
- cuda9.0
- nvidia-docker2
作りたいコンテナ
- ubuntu16.04
- cuda9.0 + cudnn7
- とりあえず
nvidia-smi
が動いてほしい
やったこと
Dockerfileを書く
-
本家nvidia/cudaのDockerfileを拾ってきました。
- 他のcudaやcudnnのバージョンのDockerfileも
https://gitlab.com/nvidia/cuda/
から拾ってこれます。
変な環境変数?等あったので適当にコメントアウトしつつ書き換えました
# ARG IMAGE_NAME
# FROM ${IMAGE_NAME}:9.0-devel-ubuntu16.04
FROM nvidia/cuda:9.0-devel-ubuntu16.04
# LABEL maintainer "NVIDIA CORPORATION <[email protected]>"
ENV CUDNN_VERSION 7.5.0.56
# LABEL com.nvidia.cudnn.version="${CUDNN_VERSION}"
RUN apt-get update && apt-get install -y --no-install-recommends \
libcudnn7=$CUDNN_VERSION-1+cuda9.0 \
libcudnn7-dev=$CUDNN_VERSION-1+cuda9.0 && \
apt-mark hold libcudnn7 && \
rm -rf /var/lib/apt/lists/*
イメージを作る
- 書いたDockerfileがあるディレクトリで
$ docker build ./ -t cuda-9.0-cudnn7-devel
-
-t
オプションで適当にcuda~~~っていう名前をつけました
じっこう!
$ docker run --runtime=nvidia --rm cuda-9.0-cudnn7-devel nvidia-smi
- ubuntu16.04
- cuda9.0 + cudnn7
- とりあえず
nvidia-smi
が動いてほしい
やったこと
Dockerfileを書く
-
本家nvidia/cudaのDockerfileを拾ってきました。
- 他のcudaやcudnnのバージョンのDockerfileも
https://gitlab.com/nvidia/cuda/
から拾ってこれます。
変な環境変数?等あったので適当にコメントアウトしつつ書き換えました
# ARG IMAGE_NAME
# FROM ${IMAGE_NAME}:9.0-devel-ubuntu16.04
FROM nvidia/cuda:9.0-devel-ubuntu16.04
# LABEL maintainer "NVIDIA CORPORATION <[email protected]>"
ENV CUDNN_VERSION 7.5.0.56
# LABEL com.nvidia.cudnn.version="${CUDNN_VERSION}"
RUN apt-get update && apt-get install -y --no-install-recommends \
libcudnn7=$CUDNN_VERSION-1+cuda9.0 \
libcudnn7-dev=$CUDNN_VERSION-1+cuda9.0 && \
apt-mark hold libcudnn7 && \
rm -rf /var/lib/apt/lists/*
イメージを作る
- 書いたDockerfileがあるディレクトリで
$ docker build ./ -t cuda-9.0-cudnn7-devel
-
-t
オプションで適当にcuda~~~っていう名前をつけました
じっこう!
$ docker run --runtime=nvidia --rm cuda-9.0-cudnn7-devel nvidia-smi
本家nvidia/cudaのDockerfileを拾ってきました。
- 他のcudaやcudnnのバージョンのDockerfileも https://gitlab.com/nvidia/cuda/ から拾ってこれます。
変な環境変数?等あったので適当にコメントアウトしつつ書き換えました
# ARG IMAGE_NAME
# FROM ${IMAGE_NAME}:9.0-devel-ubuntu16.04
FROM nvidia/cuda:9.0-devel-ubuntu16.04
# LABEL maintainer "NVIDIA CORPORATION <[email protected]>"
ENV CUDNN_VERSION 7.5.0.56
# LABEL com.nvidia.cudnn.version="${CUDNN_VERSION}"
RUN apt-get update && apt-get install -y --no-install-recommends \
libcudnn7=$CUDNN_VERSION-1+cuda9.0 \
libcudnn7-dev=$CUDNN_VERSION-1+cuda9.0 && \
apt-mark hold libcudnn7 && \
rm -rf /var/lib/apt/lists/*
$ docker build ./ -t cuda-9.0-cudnn7-devel
-t
オプションで適当にcuda~~~っていう名前をつけました$ docker run --runtime=nvidia --rm cuda-9.0-cudnn7-devel nvidia-smi
以上!
1マイクロミリバイト以上の情報を得たらいいねしよう☆
Author And Source
この問題について(nvidia-docker+Dockerfileなコンテナの立て方), 我々は、より多くの情報をここで見つけました https://qiita.com/namahoge/items/542ba95fd3892b57d6fb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .