Help us understand the problem. What is going on with this article?

【Docker】Docker Image作り、Tensorflow-OpencvのContainer

More than 1 year has passed since last update.

【はじめに】
皆さん、こんにちは。今日はここでの一言とか要らないです。では始めさせて頂きます。

準備

まずは必要なイメージを作るために必要な環境を用意します。
- Docker Toolbox
- Docker Cloud

Docker Toolbox インストール

今回の記事ではDocker Toolboxを利用してやります。
Install Docker Toolbox on Windows ←ここから簡単にダウンロードができます。
筆者は既にインストール済みなのでこちらの画面が問題なしに表示されば成功です。image.png

イメージダウンロード

タイトルではイメージ作りだと記載しましたが今回は既にあるUbuntu16.04を利用して作りたいと思います。
commandに次のように入力します。

command
docker pull ubuntu:16.04

するとこのようにUbuntuのイメージが生成されます。image.png
何でUbuntuの最新バージョンの18.04ではなく、16.04なのかに疑問があると思うんですけど実際18.04バージョンに環境を設置するとうまくいかなかったので16.04にしました。なんの設置かというと【Ubuntu】Ubuntu16.04にPython環境インストール(前半)こちらの環境構築です。これも同じく16.04にダウンして成功させました。

イメージのUbuntuにPython3環境を構築

【Ubuntu】Ubuntu16.04にPython環境インストール(前半)
この説明はこちらの記事にあるので参考にして下さい。そちらの方が早いです。終わったらこの画面になりますね。image.png

ライブラリインストール

Opencv環境までの構築は終わったら今回の記事もほぼ終わりになります。後はPythonの基本ライブラリとTensorflowやOpencvに必要なライブラリをインストールします。

command
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こちらで無料ですぐ作れるんで必要な方は作ってみてください。image.png
筆者は既にopencvまで構築完了のバージョンと本番用のイメージをアップロードしています。

そしてDockerにログインします。

command
docker login
username: ****
password: ****

image.png

COMMIT

構築が終わったコンテナをCOMMITします。

command
docker commit -m "test" <コンテナID> <イメージID>:TAG

これでコンテナの内容がCOMMITされて最初pullしたubuntu16.04イメージとは別の自作のイメージが作られます。
image.png
最初pullしたイメージ:ubuntu16.04
commitで作られたイメージ:sample/sample:TAG
筆者の場合だとwbseo/tensorflow-opencv:16.04になります。

PUSH

最後に作ったイメージをクラウドにPUSHするための作業です。
まずTAG commandで新しい名前にします。

command
docker tag local-image:tagname new-repo:tagname

そしてクラウドにPUSHします。

command
docker push new-repo:tagname

【まとめ】
Virtual BoxにUbuntuをインストールしてその上に構築するよりこれが時間もかからないしすごく楽になります。ほとんどそうだと思うんですけど同じチームで作業しているのに微妙にライブラリのバージョンが合わなくてうまくいかなかった経験とかないでしょうか。僕はそれにものすごくイライラしちゃったのでこうやって作りました。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away