1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

nvidia-docker2で機械学習の環境構築

Posted at

はじめに

Dockerの運用が必要になったので環境構築してみました

環境

Docker のインストール

aptのパッケージリストを更新する

sudo apt update -y

必要なソフトウェアのインストールする

sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

docker公式のGPG公開鍵をインストールする

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

リポジトリを追加する

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

再度パッケージリストを最新の状態に更新する

sudo apt update -y

Docker CEをインストールする

sudo apt-get install -y docker-ce

ユーザーをグループに所属させる(sudoなしで実行できるようにする)

sudo gpasswd -a user docker

nvidia-docker2.0 のインストール

旧バージョンのnvidia-docker 1.0がある場合は削除する

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

nvidia-dockerの公開鍵を取得してインストールする

curl -sL https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

変数を設定する

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

リポジトリを追加する

curl -sL https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

再度パッケージリストを最新の状態に更新する

sudo apt update -y

nvidia-docker2.0 をインストール

sudo apt install nvidia-docker2 -y

デーモン起動を起動する

sudo pkill -SIGHUP dockerd

Dockerfile を作る

Dockerfileを作ります

FROM nvidia/cuda:10.1-devel-ubuntu18.04
ENV CUDNN_VERSION 7.6.4.38
RUN apt-get update && apt-get install -y --no-install-recommends \
    libcudnn7=$CUDNN_VERSION-1+cuda10.1 \
libcudnn7-dev=$CUDNN_VERSION-1+cuda10.1 \
&& \
    apt-mark hold libcudnn7 && \
    rm -rf /var/lib/apt/lists/*

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y tzdata
RUN apt-get update && apt-get install -y  \
    wget \
    curl \
    make \
    build-essential \
    libssl-dev \
    zlib1g-dev \
    libbz2-dev \
    libreadline-dev \
    libsqlite3-dev \
    llvm \
    libncurses5-dev \
    libncursesw5-dev \
    xz-utils \
    tk-dev \
    libffi-dev \
    liblzma-dev \
    vim

WORKDIR /root/
RUN wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz \
    && tar xvf Python-3.7.0.tar.xz \
    && cd Python-3.7.0 \
    && ./configure --enable-optimizations \
    && make altinstall
RUN rm Python-3.7.0.tar.xz

WORKDIR /root/Python-3.7.0
RUN ln -fs /root/Python-3.7.0/python /usr/bin/python
RUN curl -kL https://bootstrap.pypa.io/get-pip.py | python 

WORKDIR /root/
ADD requirements.txt /root/
RUN pip install -r requirements.txt && rm requirements.txt

ENV PYTHONPATH "${PYTHONPATH}:/usr/local/lib/python3.7/site-packages"
CMD ["/bin/bash"]

イメージを作る

Dockerfileをもとにイメージを作る

docker image build -t cuda-10.1-cudnn7.6 .

コンテナを作る

ホストのディレクトリをコンテナにマウントする

docker container run -it --runtime=nvidia -h hoge --mount type=bind,src=/hoge/base,dst=/root/dst cuda-10.1-cudnn7.6

結果

とりあえず学習ができているはず

スクリーンショット 2019-11-22 22.32.55.png

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?