前人未踏の領域へ アプリ開発編

Android, iOSアプリ開発に関する調査メモ置き場。はてなダイアリーから移行したため古い記事にはアプリ以外も含まれます。

Mac OS Xにインストール

homebrewでインストールしてみたら一部のコマンドがエラーになったので
公式サイトに記載されているboot2dockerを利用する方法に変更。

boot2dockerのインストール

DockerはUnixシステム上での動作を前提としており、Macの場合はVertualBox経由で動作させることになる。boot2dockerというツールがあるのでそちらを使う。

ダウンロード

以下よりダウンロード。現在の最新は1.2.0
https://github.com/boot2docker/osx-installer/releases
ダウンロードしたらインストール

初期化

初期化はインストール直後に一度だけでよい。

$ boot2docker init

起動

$ boot2docker start
Waiting for VM and Docker daemon to start...
.........ooo
Started.
Writing /Users/hoge/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/hoge/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/hoge/.boot2docker/certs/boot2docker-vm/key.pem

To connect the Docker client to the Docker daemon, please set:
    export DOCKER_HOST=tcp://192.168.59.103:2376
    export DOCKER_CERT_PATH=/Users/hoge/.boot2docker/certs/boot2docker-vm
    export DOCKER_TLS_VERIFY=1

起動するとDOCKER_HOSTが案内されるのでそれに従う。
上記はshellinitコマンドでも再確認ができる。

$ boot2docker shellinit
Writing /Users/hoge/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/hoge/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/hoge/.boot2docker/certs/boot2docker-vm/key.pem
    export DOCKER_HOST=tcp://192.168.59.103:2376
    export DOCKER_CERT_PATH=/Users/hoge/.boot2docker/certs/boot2docker-vm
    export DOCKER_TLS_VERIFY=1

環境変数をまとめてセットするには以下のようにする。

$ eval "$(boot2docker shellinit)"

確認

状態を確認してみよう

$ boot2docker status
running

コマンドが利用可能になっているはず。

$ docker --version
Docker version 1.2.0, build fa7b24f

停止

boot2docker stop

トラブルシューティング

docker daemonが停止する

作業中、なんらかの理由でdocker daemonが停止し、コマンドがエラーになることがある。

$ docker images
2014/09/14 14:39:11 Cannot connect to the Docker daemon. Is 'docker -d' running on this host?

このような場合にはboot2dockerを再起動する

$ boot2docker restart
##または
$ boot2docker stop
$ boot2docker start
サーバーへのアクセスがタイムアウトする
$ docker search tutorial
FATA[0020] Error response from daemon: Get https://index.docker.io/v1/search?q=tutorial: dial tcp: lookup index.docker.io on 192.168.0.1:53: read udp 192.168.0.1:53: i/o timeout 

この場合もboot2dockerの再起動で回復する

$ boot2docker restart
##または
$ boot2docker stop
$ boot2docker start

アップグレード

$ boot2docker stop
$ boot2docker upgrade