【はじめに】
皆さん、こんにちは。今日はここでの一言とか要らないです。では始めさせて頂きます。
準備
まずは必要なイメージを作るために必要な環境を用意します。
- Docker Toolbox
- Docker Cloud
Docker Toolbox インストール
今回の記事ではDocker Toolboxを利用してやります。
Install Docker Toolbox on Windows ←ここから簡単にダウンロードができます。
筆者は既にインストール済みなのでこちらの画面が問題なしに表示されば成功です。
イメージダウンロード
タイトルではイメージ作りだと記載しましたが今回は既にあるUbuntu16.04を利用して作りたいと思います。
commandに次のように入力します。
docker pull ubuntu:16.04
するとこのようにUbuntuのイメージが生成されます。
何でUbuntuの最新バージョンの18.04ではなく、16.04なのかに疑問があると思うんですけど実際18.04バージョンに環境を設置するとうまくいかなかったので16.04にしました。なんの設置かというと【Ubuntu】Ubuntu16.04にPython環境インストール(前半)こちらの環境構築です。これも同じく16.04にダウンして成功させました。
イメージのUbuntuにPython3環境を構築
【Ubuntu】Ubuntu16.04にPython環境インストール(前半)
この説明はこちらの記事にあるので参考にして下さい。そちらの方が早いです。終わったらこの画面になりますね。
ライブラリインストール
Opencv環境までの構築は終わったら今回の記事もほぼ終わりになります。後はPythonの基本ライブラリとTensorflowやOpencvに必要なライブラリをインストールします。
pip install tensorflow
pip install opencv_contrib_python
pip install pyqt5
pip install panda
pip install sklearn
pip install scipy
pip install torch
pip install chainer
...
人によって必要なライルぶらりは全部違うと思うので各自自由にインストールして下さい。ここまで出来たら次の作業はこのコンテナをcommitして内容を保存します。
※番外
ここからはContainerをcommitしてDocker CloudにPushする作業になります。Cloudにあげることによってどの環境でも時間かけずに構築することができます。
Docker Cloudのアカウント生成、ログイン
docker cloudこちらで無料ですぐ作れるんで必要な方は作ってみてください。
筆者は既にopencvまで構築完了のバージョンと本番用のイメージをアップロードしています。
そしてDockerにログインします。
docker login
username: ****
password: ****
COMMIT
構築が終わったコンテナをCOMMITします。
docker commit -m "test" <コンテナID> <イメージID>:TAG
これでコンテナの内容がCOMMITされて最初pullしたubuntu16.04イメージとは別の自作のイメージが作られます。
最初pullしたイメージ:ubuntu16.04
commitで作られたイメージ:sample/sample:TAG
筆者の場合だとwbseo/tensorflow-opencv:16.04になります。
PUSH
最後に作ったイメージをクラウドにPUSHするための作業です。
まずTAG commandで新しい名前にします。
docker tag local-image:tagname new-repo:tagname
そしてクラウドにPUSHします。
docker push new-repo:tagname
【まとめ】
Virtual BoxにUbuntuをインストールしてその上に構築するよりこれが時間もかからないしすごく楽になります。ほとんどそうだと思うんですけど同じチームで作業しているのに微妙にライブラリのバージョンが合わなくてうまくいかなかった経験とかないでしょうか。僕はそれにものすごくイライラしちゃったのでこうやって作りました。