Docker OSについて
前回は、Dockerコンテナの構築を行いました。
そして、OSについては触れませんでした。。。なので今回は調べます。
docker infoコマンドで以下の様な情報を確認しました。
選択している部分はOS名を示しています。
だけど前回はその部分に触れていませんので。。。
・dockerコンテナに移動する(ターミナル使用)
>docker exec -it コンテナ(image)名 bash (bash使用時)
今回はnginxのコンテナに移動してみました。docker info でnameが「webserver」だったので以下の様にコマンドを入力しました。
上記の結果から、1コンテナにつき1OSで起動しているのかな?と仮説を立てます。
理由は、docker infoではalpine linux だったが今回のOS名はGNU....
なので起動しているコンテナと、dockerが起動している仮想OSが違っているのでは?と思った次第です。
調査の結果、起動しているAlpain Linuxに関してはMacOS Xで使用しているOSの様だ
詳細に関してはわかりませんでしたがとりあえずは問題もない様です。
そして、今回のGNU Linuxに関しては起動しているコンテナのOS....
→ベースになっているOSとnginxが起動しているOS(コンテナ上のOS)が違うということは「複数のOSが起動しているであろう」という仮説です。
詰まる所、コンテナを作成しそれを配布するのが自分のやろうとしていることになりました。→まだ仮説の領域は出ていません。。。
なので、次回はコンテナの作成を行おうと思っております。
2017/05/08 追記
desuga,Dockerコンテナを使用するなら単純にVMを使用してイメージファイルを
共有する方が便利だと思ったのでDockerはTendorFlowでの実行環境用にしようと思います。。。。
Docker コンテナ構築
今回はDockerのコンテナ(起動するアプリケーションの基本になるもの)を構築します。
参考にしたサイトはこちらです。
早速、コンテナの構築を始めます。
まずは、インストールした、Dockerを起動します。(Dockerデーモン起動)
起動確認をしておきます。
ターミナルを起動して、「docker info」コマンドで確認します。
そして、「nginx(エンジンエックス)」のイメージを取得します。
以下のコマンドを入力
>docker pull nginx:latest
イメージの取得確認
>docker images
「nginx」が存在していることを確認します
そして、起動します。
>docker run -d -p 8080:80 --name webserver nginx
「localhost:8080」にアクセス
これでウェブサーバーを起動できました。
そして、DB(PostgreSQL)のイメージを取得します。
参考にしたサイトは以下のサイトです。
>docker pull postgres
インストール確認
起動してみます。
>docker run -it --name postgres -d postgres:latest
起動確認
>docker ps
「nginx」と「postgres」が起動しています。
次回は、OSの起動について確認します。
Dockerのインストール mac
前回はソースを眺めました、その他にTensorFlowの書籍、チュートリアルを読んでみましたが。。。結局何もわからず(笑)
数学の勉強を始める気にはなりませんで。。。
仕方ないので、とりあえずDockerのインストールをします。チュートリアルにも書いてたし。。。まぁTensorFlow & Dockerというところで(笑)
※Dockerを使用した方が簡単に使えるという情報をゲットしたためインストールすることにしました。
・Dockerのインストール、下記のサイトよりダウンロード(マックなのでりんごの方)
自宅のネットワークスピードが遅いからなのか、結構時間がかかります。。。
というか、何も反応がないように思ったので手段を変更します。
以下のサイトを参考にします。
今回はStableの方をダウンロードします。
インストール完了
アプリケーション起動、以下の様な画面が出てきます。
しばらくすると、上部が緑色に変わります。
どうやら、上記の画面が出ている状態が「デーモン」(PCの裏側で動くプロセス)
が起動している状態を示していて「docker info」コマンドで以下の様な表示が行われる
1. ターミナルを起動する
2. docker infoコマンドを入力
とりあえずは、Dockerのインストールが完了⭐︎
TensorFlow Pythonに慣れる
前回は、インストールを行いました。その他にグラフィック用のAPIもあるらしい
今回は、pythonからTensorFlowにアクセスして起動します。
一応、macでターミナルを起動して実行しています。
./tensorにTesorFlowをインストールしましたので起動するのは
./bin/activateでした。
Pythonファイルを「test.py」で作成し以下の様に記述しました。
使用したエディタは「vi」毎度お馴染みですが一応以下を参照しました。
tensorflowを変数「tf」で使用する様に宣言:1行目
node1を作成 :3行目
node2を作成:4行目
node1, node2をコンソール出力:5行目
テンソルフローのセッションを取得:7行目
node1, node2の配列を実行する → 詳細はよくわかりませんでした。
node1, node2からnode3を作成:10行目
node3を表示:11行目
node3を実行:12行目
【実行結果】
詳細部分はまるでわからないが、とりあえず座標を出力しているのかな?
詳細だけでなく全くわかりませんでした。
わかったのはtensorflowで「run」「add」をした値を表示すると上の様に出力されるということだけ(笑 )
TensolFlow 開発編〜プログラムでテンソルを動かす〜
この記事は以下のサイトを参考にして実行しています。
Getting Started With TensorFlow | TensorFlow
前回の続きです。インストールしたTensolFlowを起動するところから始めます。
以下のコマンドを叩きます。
>source 「virtualenvのインストールしたディレクトリ」/bin/activate
くどい様ですが、「(tensol)」が表示されていることを確認します。
そして、今気がつきましたが、インストールは完了していませんで。。。。
以下の処理を行います。
①pythonのtensorflowをインストールする
>pip install tensorflow
エラー文言が出ましたが、とりあえず無視(pipのバージョンは新しいため)
これもエラーが出力されました。。。。
読み進めると「エラーが出たらこっちをやってね❤️」と記載があります。
1. pipのアップグレード
>sudo easy_install --upgrade pip
>sudo easy_install --upgrade six
2.tensorflowのインストール(pip用)
>export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/tensorflow-0.9.0-py2-none-any.whl # 環境変数を設定する
>pip install --upgrade $TF_BINARY_URL
しかし、またエラーが。。。
自己解決しました。
1.tensorflowをアクティブにする
2.上記の処理を再実行
>pip install 。。。。と上記のコマンドを入力
そして起動確認(参考にしたサイトに「Validate Install」と書いている部分に記載あり)
なんか「command not found」と出ていますが、tensorflowが動いているので
とりあえず無視します。→後に戦うことになるでしょう(笑)
どうやら、仮想空間(actibvateした状態)が起動していないと読み込みができない様だ
人工知能 TensolFlowのインストール
以下のサイトを参考にして実行しています。
Installing TensorFlow on Mac OS X | TensorFlow
MacOsXへのインストール方法になります。
①-1ターミナルを立ち上げて以下のコマンドで「pipコマンド」をインストール
※Pythonのインストールです。
>sudo easy_install pip
①-2 virtualenvのインストール
>sudo pip install --upgrade virtualenv
②virtualenvの作成(指定のフォーマットで。。。詳細は分かりませんでした。)
>virtualenv --system-site-packages targetDirectory(対象ディレクトリ)
③virtualenvのアクティベート(activate)
>source 「virtualenvのインストールしたディレクトリ」/bin/activate
もしくは
>source 「virtualenvのインストールしたディレクトリ」/bin/activate.csh
※使用できるもので良い(csh or tcsh)
実行後に以下の様な表示が出ればオッケ⭐︎
自分の実行結果は以下のとおり
もし「pipコマンド」が2.7とか3.??の場合はアップグレードして最新版にしてください
④「(tensol)」が表示されている状況がtensolflowの実行状態
終了するときは、以下のコマンドを実行する
>deactivate
⑤アンインストールはインストールディレクトリを削除する
その他。。。バイナリも(ウィンドウズで言う所の「exeファイル」)あるらしい
詳細は参考元のサイトをご参照されたし(笑)
マインクラフトのインストール for mac
マインクラフトのインストールをやります。
ここのサイトからダウンロードします(無料版) Macでも可能みたい⭐︎
downloads.tomsguide.com
そして、Mincraft Forgeをインストール
一応確認、起動するためにはJavaが必要になります。
現在自分の端末にはJDK1.8が入っています。
javaのダウンロード、及びインストールについては、こちらを参照ください
Java SE ダウンロード 最新版は英語のサイトから落とします(笑)
さらにjavaのバージョン確認を行います。
ターミナルを立ち上げて「java -version」と入力してenter keyを押下
上記の様にバージョンが確認できます。
実際にはJDK1.6(javaSE6)が必要だったので下記のサイトからダウンロードしました。
ダウンロード - Java for OS X 2015-001
次回は、マインクラフトを起動してみます。
UML クラス図を作る
前回はステートマシン図を作成したので今回はクラス図を作成します。
※astah*を使用して作成しています。
アプリケーションとしては、ファイル読込→動画の表示とシンプルなものなので
クラス図もシンプルです。(悲)
メインクラスにメインメソッド(今回は省略しました。)Qtを使用して作成する予定なのですが「どの言語でも作成できる様に設計する」ためにQtの部品などは記載しておりません。。。
そして、String, Listを使用するので<<include>>を上部に記載しております。
【キモになる部分】
MainClassより関連線が伸びております。これは、MainClassで関連先のクラスを保持
Java的に表現するなら「フィールド」、C++的に表現するなら「メンバ変数」(Javaでもその様に呼びますが。。。)
共通部品に関して、使用するフレームワーク、ライブラリ部品があるので記載はしませんが、ノート(青だか、紫だかわかりませんが(笑))で触れておきました。
UML ステートマシン図を書く
前回はオブジェクト配置図を書きましたので、今回はステートマシン図を書きました。
ズバリ、処理フロー図です(笑) 「状態マシン」とかいろんな言い方が書籍でありましたが、まとめると上記の様に解釈しました。
やっぱりこれも技術なので、「習うより慣れろ」の世界だと思います
細かい部分は調べればすぐにわかると思いますのでサンプルとして...
はじめに開始状態「●」が来るのですが、アプリケーションの起動=ラズパイの起動
を想定しているため開始状態にスイッチオン状態を記載しております。
起動トリガーが走り、設定ファイル読込。。。と処理が走ります。
図だけではビミョウ。。。とか感じたら「ノート」を使用します。(ピンク色)
割と詳細に近づいてきたかな?といった感じです。処理概要としては見やすいと思いました。