#目的
前回の記事でdockerをインストールしてベーシックな機械学習環境を構築することまで行いましたが、拾ってきたdockerイメージには必要なライブラリが入っていませんでした。そこで拾ってきたdockerイメージにライブラリを追加して新しいdockerイメージを作成することを行います。
#実施内容概要
元となるdockerイメージ:tensorflow/tensorflow
追加するライブラリ:ScikitLearn、Pandas、imbalanced-learn
作成するdockerイメージ:my_ml
#実施環境
MacBookAir early 2020, RAM 8GB, CPU intel core i5 (非M1)
OS: macOS Big Sur Ver. 11.4
#実施内容
###dockerの起動
docker desktopのインストールとtensorflowのdockerイメージのダウンロードが完了していれば、以下のコマンドをterminalに入力するだけでdockerを起動できます。
-d を追加して、バックグラウンドで動作してもらうことにしました。
--name TF を追加して、コンテナの名前をTFと固定しました。
% docker run -d -it --name TF -p 8081:8888 tensorflow/tensorflow:latest-jupyter
#####注意
2回目以降、上記コマンドではTFはすでにあるとのエラーが出ます。この時はdocker desktopの再生ボタンを押せば良いみたいです。
###CLIの起動
docker desktopのCLIと書いてあるボタンをクリックするとコマンドラインが起動します。どうやらここがdockerコンテナ上のterminal相当の場所の様です。例えば、このコマンドライン上で「Python3」と入力するとPythonが起動します。(今は起動しません)
###pipによるライブラリのインストール
起動したコマンドライン上で以下のコマンドを実行してライブラリをインストールします。
$ pip install scikit-learn
$ pip install pandas
$ pip install imbalanced-learn
###インストールの確認
インストール完了後、起動しているコマンドライン上で以下を入力し、Python3を起動させます。
$ Python3
その後、起動したPython3にて以下を実行してエラーが出ないことを確かめます。
>>> import pandas
>>> import sklearn
>>> import imbalanced-learn
その後一旦起動したCLIを終了させます。(terminalを左上のバッテンマークで消しておきます。)
###terminalの再起動とdockerイメージ化
terminalを再度起動して、以下のコマンドを入力します。これで新たなdockerイメージの作成が完了しました!!
$ docker commit TF my_ml
commitの後の第一引数で起動中のコンテナを指定(今はTF)
第二引数で作成するイメージの名前をつける(今回はmy_ml)
イメージの名前には大文字は使えない様です。
$ docker images
と入力すれば、my_mlと記載されたイメージが追加されていることが確認できるはずです。
#結果
例えば、以下のコマンドをterminal上で実行すれば、
my_mlというdockerイメージから、
MLという名前のdockerコンテナを作成できます。
そしてこれにはすでに元にしたtensorflowはもちろん、pandas、Scikit-Learnとimbalanced-learnも含まれています!
$ docker run -d -it --name ML -p 8088:8888 my_ml