Docker環境設定の方法

SmallTrain Dockerの環境設定の方法を説明します。

SmallTrain Dockerの環境設定をご自身で変更することができます。

Overview

SmallTrain Dockerの環境設定は、Getting StartedでクローンしたSmallTrainリポジトリ下のdockerディレクトリ~/github/geek-guild/smalltrain/docker/下の.envという名前です。

次のようなコマンドを入力して、設定ファイルをエディタで開き、編集をします。

on the host

# dockerディレクトリに移動
$ cd ~/github/geek-guild/smalltrain/docker/
# 設定ファイル .env をvimエディタで開く(viと短縮コマンドを打ち込んでも開けます)
$ vi .env

設定ファイルの内容

smalltrain/docker/.env

COMPOSE_PROJECT_NAME=default
NVIDIA_VISIBLE_DEVICES=0
SMALLTRAIN_ROOT=~/github/geek-guild/smalltrain
GGUTILS_SRC_ROOT=~/github/geek-guild/ggutils
REDIS_ROOT=~/redis
SMALLTRAIN_IP_ADDR=172.28.0.2
REDIS_IP_ADDR=172.28.0.3
DATA_ROOT=~/data/
TENSORBOARD_PORT=6006
JUPYTER_NOTEBOOK_PORT=8888
  • 設定のポイント

    • COMPOSE_PROJECT_NAME
      • 起動するDocker コンテナは、smalltrain-<COMPOSE_PROJECT_NAME>というような名前になるので、他のSmallTrain Dockerコンテナの名前と重複しないようCOMPOSE_PROJECT_NAMEを設定してください。
      • 他のcontainerの名前はdocker ps -aコマンドの実行結果の中のNAMESで確認することができます。
    • NVIDIA_VISIBLE_DEVICES を、他のDockerコンテナやプログラムが利用しているGPU番号と重複しないようにします。
    • DATA_ROOT に、コンテナ側からマウントしたいホスト側のデータディレクトリを設定します(デフォルトでは、ホームディレクトリ以下の~/data/というデータディレクトリをマウントします)。
    • SmallTrainコンテナのIPアドレスSMALLTRAIN_IP_ADDR, RedisコンテナのIPアドレスREDIS_IP_ADDR を、他のDocker containerが利用しているIPと重複しないようにします。
      • 他のcontainerが利用しているIPはdocker network inspectコマンドを使い、次のようにして確認できます。
      $ docker network inspect smalltrain_network | grep IPv4Address
      
    • TENSORBOARD_PORT , JUPYTER_NOTEBOOK_PORT を、他のDocker containerが利用しているportと重複しないようにします。
  • もし、RedisコンテナのIPアドレスREDIS_IP_ADDRを変更した場合は、SmallTrainコンテナからRedisコンテナに接続するための設定ファイルredis_connection_setting.jsonを変更する必要があります。 この設定ファイルは~/github/geek-guild/smalltrain/src/configs/redis_connection_setting.jsonの位置にあります。

    $ vi ~/github/geek-guild/smalltrain/src/configs/redis_connection_setting.json
    

    smalltrain/src/configs/redis_connection_setting.json

    {
      "host": "172.28.0.3",
      "port": 6379,
      "redis_db_num": 0,
      ...
    }
    
    • "host": "172.28.0.3"の箇所が、RedisコンテナのIPアドレスを示します。この値を、REDIS_IP_ADDRに合わせて変更してください。
  • 設定ファイルの変更が完了したら、Getting Started(CIFAR-10 image classification)Dockerコンテナを実行します。の手順に戻って、Dockerコンテナを実行してください。