Docker環境設定の方法
SmallTrain Dockerの環境設定の方法を説明します。
SmallTrain Dockerの環境設定をご自身で変更することができます。
Overview
- (例として、Getting Started(CIFAR-10 image classification)を実行した直後のサーバにアクセスしていることを想定します。)
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で確認することができます。
- 起動するDocker コンテナは、
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 - 他のcontainerが利用しているIPは
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.jsonsmalltrain/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コンテナを実行してください。