2016-05-15 11 views
3

私はドッカーの初心者です。Docker - 既存のdockerイメージに新しいpython依存関係を追加するには?

Windows 10 OSでテンソルフロードッカーを使用するのが難しいです。

私はUdacityの深い学習コースに従っているので、instructionに続いてtensorflowドッカーをダウンロードし、最初の割り当てを開始しようとしました。

しかし、ドッカー画像にscikit-learnパッケージがないため、起動できませんでした。

docker run -it -p 8888:8888 b.gcr.io/tensorflow/tensorflow /bin/bash 

、その後、私は実行します:

pip install -U scikit-learn 

、その後、私はないかもしれない(100%を実行しますので、基本的に、私は私が最初に私のドッキングウィンドウのイメージを実行している、この問題を克服するために何をすべきか

正解ですが):

./run_jupyter.sh 

私の課題を実行するためにiPythonノートブックを起動します。

私の質問は簡単です:

私はこのステップを、私はノートパソコンを再起動する必要があるたびに繰り返す必要はありませんので、私はこのドッキングウィンドウの画像上で発生し、この変更を保存しますか?

ドッカー設定ファイルを変更することでこれを行うことはできますか?

答えて

3

コンテナが正しい状態になったら(scikit-learnがインストールされていれば、スクリプトが実行されます)、停止して(docker stop)、新しいイメージとしてコミットします。

docker commitを参照して、コンテナのファイルの変更や設定を新しいイメージにコミットします。

次に、その新しいイメージから作成されたコンテナには前のステップが既に存在することを除いて、以前と同じパラメータで新しいイメージを実行できます。

しかし、もう1つの方法はtenserflow udacity Dockerfileから画像を作成することです。

FROM gcr.io/tensorflow/tensorflow:latest 
MAINTAINER Vincent Vanhoucke <[email protected]> 
RUN pip install scikit-learn 
RUN rm -rf /notebooks/* 
ADD *.ipynb /notebooks/ 
WORKDIR /notebooks 
CMD ["/run_jupyter.sh"] 

デフォルトでは、このイメージは正しいコマンドを実行します。

+0

ありがとうございました。これは非常に役に立ちます。しかし、bashシェルでは、私はドッカーの停止コマンドを入力すると 'ドッカー'を認識しません。最初にシェルから抜けて、ドッカーコミットとタイプする必要がありますか? – user8079

+0

@ user8079はい、ドッカー停止は、ホストシェルではなく、コンテナシェルで入力されます。 – VonC