nvidia-docker用のDockerfileとdocker-compose.yml

スポンサーリンク
プログラミング

現在機械学習を勉強しています。
特にRNN周りをやっていて、時々CNNを触ってみたりといった感じです。

スポンサーリンク

環境

自分の機械学習マシン環境は

  • ThinkPad X230
  • Ubuntu18.04
  • GTX1060 6GB
  • nvidia-docker
  • jupyter notebook

です。

nvidia-docker version
NVIDIA Docker: 2.0.3
Client: Docker Engine - Community
 Version:           19.03.1
 API version:       1.40
 Go version:        go1.12.5
 Git commit:        74b1e89
 Built:             Thu Jul 25 21:21:05 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.1
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.5
  Git commit:       74b1e89
  Built:            Thu Jul 25 21:19:41 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

環境構築の話はこちらで書きました。

Dockerfile

DockerfileはtensorflowのDockerイメージの上に、自分が使うライブラリ等を入れています。

FROM tensorflow/tensorflow:latest-gpu-py3-jupyter

RUN apt update && apt install -y vim graphviz wget libsm6 libxext6 libxrender-dev tmux && python3 -m pip install keras sklearn pydot_ng graphviz nltk pandas tqdm Pillow opencv-python pillow
RUN apt install -y make automake autoconf autotools-dev m4 mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file
RUN git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git &&\
    cd mecab-ipadic-neologd &&\
    sed -e "s/sudo//g" /tf/mecab-ipadic-neologd/bin/../libexec/install-mecab-ipadic-neologd.sh > /tf/mecab-ipadic-neologd/bin/../libexec/install-mecab-ipadic-neologd.sh &&\
     ./bin/install-mecab-ipadic-neologd -n -a -y
RUN python3 -m pip install mecab-python3

docker-compose.yml

上記のdocker imageをnozomi0966/tensorflow:という名前にしています。
コンテナを$HOMEにマウントしてあげることで、ホストマシンとのデータの受け渡しを楽にできるようにしています。
また、jupyter notebookのtokenを決めておくことで、再起動をかけても入りやすくしています。

version: '2.3'
services:
    tensorflow:
        container_name: nozomi_tensorflow
        image: nozomi0966/tensorflow:latest
        volumes:
                - $HOME/:/tf
        runtime: nvidia
        tty: true
        restart: always
        command: /usr/local/bin/jupyter notebook --NotebookApp.token='hogehoge' --ip=0.0.0.0 --allow-root
        ports:
            - 8888:8888

github

tensorfolw_docker_image

コメント

タイトルとURLをコピーしました