2014年4月7日月曜日

Dockerを使ってみた

「JAWS DAYS 2014」に行って最近はVMではなくコンテナってのが流行っているということなので、試してみました。
今回はDockerの導入手順だけを記載します。

・環境
Mac OX 10.9.2

・Dockerインストール前提
Mac上でDockerを利用するためにはboot2dockerというものを先にインストールする必要がある。
基本的な手順は公式サイトに書いてあるのでそちらを参照するのが良いかもしれない。

・Dockerインストール作業
1.boot2dockerのインストール
好きなディレクトリに移動。
$ curl https://raw.github.com/boot2docker/boot2docker/master/boot2docker > boot2docker
$ chmod +x boot2docker
$ ./boot2docker init
$ ./boot2docker up
以上でDockerを動かすための下準備完了。

2.Dockerインストール
好きなディレクトリに移動。
$ curl -o docker https://get.docker.io/builds/Darwin/x86_64/docker-latest
$ chmod +x docker
$ export DOCKER_HOST=tcp://127.0.0.1:4243
$ sudo cp docker /usr/local/bin/
以上でインストールは完了です。

では早速コンテナを立ち上げて使ってみましょう!

3.CentOSを立ち上げてechoコマンドを実行
$ docker run centos /bin/echo hello world
初回は、OSのイメージをダウンロードするのでスゴく時間がかかります。気長に待ちましょう。

1回イメージがダウンロードできれば、次からは即効でコンテナが起動しコマンドの結果が返ってきます。

2011年9月17日土曜日

mongodbとphpの連携

・PHPとmongodbを連携させる
$PHP_HOME/bin/pecl install mongo

そうすると、下記のエラーが発生した・・・
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

ERROR: `phpize' failed

とりあえずググッて見たら下記をやれば解決する可能性があるのでやってみる。
yum install autoconf
(autoconfのインストール)


・php.iniに下記を追加
extension=mongo.so
※php.iniの場所がわからなければ、phpinfo()を表示させて確認する。

・インストールされているかの確認
$PHP_HOME/bin/php -m |grep mongo

・PHPからデータを格納してみる

mongodbのインストール

どうしても、複数ポイント(緯度経度)で囲った範囲のデータを抽出したかったので、mongodbをインストールすることにしました!
※1.9以上のバージョンじゃないと複数地点検索(Geo Polygon Query)はできない。

■mongodbのインストール
・ソースの取得及び展開
wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.0.0.tgz
tar zxvf mongodb-linux-i686-2.0.0.tgz

・データファイルの保存ディレクトリ作成
mkdir -p /var/mongodb/data
ディレクトリのパーミッションに気をつけて!

・DBの起動
$MONGODB_HOME/bin/mongod --dbpath=/var/mongodb/data/ &

・DBへ
$MONGODB_HOME/bin/mongo

・動作確認
> db.foo.insert( {a:1} )
> db.foo.find()
上記で値が出力されればOK!

2010年10月10日日曜日

node.jsのrequireを使ってみた!

前回node.jsのインストールが出来てサンプルが表示できたと思います!
前回のサンプルにもあった、require('xxx')という物で遊んでみました。

とりあえず、私自身がJavaプログラマーなので、Javaとの比較で説明したいと思います!

では、requireの説明ですが・・・

requireはimportみたいなものです!

以上!

とりあえず、今回のサンプルを見つつ説明させてください!
var http = require('http');
var url = require('url');
var querystring = require('querystring');
var circle = require('./circle');

http.createServer(function(request, response) {
        response.writeHead(200,{'Content-Type': 'text/plain'});
        var hoge = querystring.parse(url.parse(request.url).query).hoge;
        response.end(circle.area(4) + " " + hoge);
}).listen(8124);

console.log('http://localhost:8124');
require('http'),require('url'),require('querystring')はnode.jsが用意している関数をJavaで言うimportしている感じです。
importして、そこに書いてある変数で受け取っている。そんなイメージ。
使うときは、その変数経由で呼び出すことができます!

ちなみに、hogeパラメータを取得するときは、上記サンプルで書かれている通り、このように書きます。
querystring.parse(url.parse(request.url).query).hoge

で、一個だけ毛色の違うrequire('./circle')は、、、なにかというと
独自で作成した関数になっています。
同一階層にcircle.jsというファイルを置いているので、このように記述しています。

・中身はこんな感じです。
var PI = 3.14;
exports.area = function (r) {
  return PI * r * r;
};

exports.circumference = function (r) {
  return 2 * PI * r;
};

ちなみに、requireはrequireされたファイルからさらにrequireを使っていくこともできます!

2010年10月9日土曜日

node.jsインストールしてみた!

最近よく聞くnode.jsを使ってみました!!

なにかというと、サーバサイドJavaScriptです。
JavaScriptでサーバ側の処理を作れるっていう素敵なものです!

本家:http://nodejs.org/

では、インストールしてみましょう!


$ wget http://nodejs.org/dist/node-v0.2.3.tar.gz
$ tar zxvf node-v0.2.3.tar.gz
$ cd node-v0.2.3

# sslを使わないので
$ ./configure --without-ssl
# sslを使う場合はオプションなしでOK!

$ make
$ make install



インストールに成功したら、、、このサンプルを書いてみましょう!
(といっても本家のexampleをそのまま使っています)

・example.js

var http = require('http');


http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World\n');
}).listen(8124);

console.log('Server running at http://127.0.0.1:8124/');


保存したら、あとは実行するだけ!


$ node example.js


実行したら、URLにアクセスする!
http://localhost:8124/

画面に"Hello World"と出力されていればインストールは成功です!